From 5db1e0084af108b76f7f971eec9c9ed663a2d732 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 2 Sep 2022 09:58:11 +0200 Subject: [PATCH 01/54] Turn off tracing #3084 Some debug tracing was left turned on and committed by mistake Reference: https://github.com/nexB/scancode-toolkit/issues/3084 Reported-by: Soim @soimkim Signed-off-by: Philippe Ombredanne --- src/packagedcode/win_reg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/win_reg.py b/src/packagedcode/win_reg.py index 4d4d7c82462..e4e59cd3b1e 100644 --- a/src/packagedcode/win_reg.py +++ b/src/packagedcode/win_reg.py @@ -28,7 +28,7 @@ # TODO: check for chocolatey # TODO: Windows appstore -TRACE = True +TRACE = False def logger_debug(*args): From a761da7528fbc6a1469b02e15265124ecd7685bf Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 2 Sep 2022 09:58:46 +0200 Subject: [PATCH 02/54] Do not print JS map file content #3084 Some debug print was left and committed by mistake Reference: https://github.com/nexB/scancode-toolkit/issues/3084 Reported-by: Soim @soimkim Signed-off-by: Philippe Ombredanne --- src/textcode/analysis.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/textcode/analysis.py b/src/textcode/analysis.py index 6e5d55e54cd..98a33b7705f 100644 --- a/src/textcode/analysis.py +++ b/src/textcode/analysis.py @@ -239,7 +239,6 @@ def js_map_sources_lines(location): entry = replace_verbatim_cr_lf_chars(entry) for line in entry.splitlines(): l = remove_verbatim_cr_lf_tab_chars(line) - print(repr(l), l) yield l From 6d3f47f4f437a4250203a460e00bdcc41cebef40 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 2 Sep 2022 11:29:04 +0200 Subject: [PATCH 03/54] Turn off tracing #3084 Some debug tracing was left turned on and committed by mistake Reference: https://github.com/nexB/scancode-toolkit/issues/3084 Reported-by: Soim @soimkim Signed-off-by: Philippe Ombredanne --- conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conftest.py b/conftest.py index 67bb4f8675b..211c130e1e8 100644 --- a/conftest.py +++ b/conftest.py @@ -20,7 +20,7 @@ import pytest -TRACE = True +TRACE = False """ A pytest conftest.py for scancode-toolkit to control which tests to run and when. From 9a98ac27ddd244d2d3cbd918c17a858f344445a1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 2 Sep 2022 11:31:33 +0200 Subject: [PATCH 04/54] Update changelog and bump release #3084 Reported-by: Soim @soimkim Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 10 ++++++++++ setup-mini.cfg | 2 +- setup.cfg | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aec83a786fb..b28287c2a85 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -32,6 +32,16 @@ License detection: + +v31.1.1 - 2022-09-02 +---------------------------------- + +This is a minor release with a bug fix. + +- Do not display tracing/debug outputs at runtime + + + v31.1.0 - 2022-08-29 ---------------------------------- diff --git a/setup-mini.cfg b/setup-mini.cfg index d58491251bb..67bb8ec4f4c 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit-mini -version = 31.1.0 +version = 31.1.1 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 diff --git a/setup.cfg b/setup.cfg index 5460c66fc2f..09066b9f237 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit -version = 31.1.0 +version = 31.1.1 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 From 5ccee5f48e7d7140794ebe52ebdfd208f86d1c95 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 30 Aug 2022 18:10:58 -0700 Subject: [PATCH 05/54] Return single Package from Gemfile.lock #3072 Signed-off-by: Jono Yang --- src/packagedcode/rubygems.py | 60 +++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/packagedcode/rubygems.py b/src/packagedcode/rubygems.py index 0edc69cdc2d..169055b31ab 100644 --- a/src/packagedcode/rubygems.py +++ b/src/packagedcode/rubygems.py @@ -253,7 +253,8 @@ class GemfileLockHandler(BaseGemProjectHandler): def parse(cls, location): gemfile_lock = GemfileLockParser(location) dependencies = [] - for _, gem in gemfile_lock.all_gems.items(): + all_gems = list(gemfile_lock.all_gems.values()) + for gem in all_gems: dependencies.append( models.DependentPackage( purl=PackageURL( @@ -277,34 +278,35 @@ def parse(cls, location): primary_language=cls.default_primary_language, ) - for _, gem in gemfile_lock.all_gems.items(): - deps = [] - for _dep_name, dep in gem.dependencies.items(): - deps.append( - models.DependentPackage( - purl=PackageURL( - type='gem', - name=dep.name, - version=dep.version - ).to_string(), - extracted_requirement=', '.join(dep.requirements), - scope='dependencies', - is_runtime=True, - is_optional=False, - is_resolved=True, - ) - ) - urls = get_urls(gem.name, gem.version) - - yield models.PackageData( - datasource_id=cls.datasource_id, - primary_language=cls.default_primary_language, - type=cls.default_package_type, - name=gem.name, - version=gem.version, - dependencies=deps, - **urls - ) + if not all_gems: + return + + main_gem = all_gems[0] + deps = [ + models.DependentPackage( + purl=PackageURL( + type='gem', + name=dep.name, + version=dep.version + ).to_string(), + extracted_requirement=', '.join(dep.requirements), + scope='dependencies', + is_runtime=True, + is_optional=False, + is_resolved=True, + ) for dep in main_gem.dependencies.values() + ] + urls = get_urls(main_gem.name, main_gem.version) + + yield models.PackageData( + datasource_id=cls.datasource_id, + primary_language=cls.default_primary_language, + type=cls.default_package_type, + name=main_gem.name, + version=main_gem.version, + dependencies=deps, + **urls + ) class GemfileLockInExtractedGemHandler(GemfileLockHandler): From a43660f2168b50d3b64fff43139504e8c1b1a817 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Wed, 31 Aug 2022 18:46:04 -0700 Subject: [PATCH 06/54] Do not return nameless package with deps #3072 Signed-off-by: Jono Yang --- src/packagedcode/rubygems.py | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/src/packagedcode/rubygems.py b/src/packagedcode/rubygems.py index 169055b31ab..77315bfdcaf 100644 --- a/src/packagedcode/rubygems.py +++ b/src/packagedcode/rubygems.py @@ -252,32 +252,7 @@ class GemfileLockHandler(BaseGemProjectHandler): @classmethod def parse(cls, location): gemfile_lock = GemfileLockParser(location) - dependencies = [] all_gems = list(gemfile_lock.all_gems.values()) - for gem in all_gems: - dependencies.append( - models.DependentPackage( - purl=PackageURL( - type='gem', - name=gem.name, - version=gem.version - ).to_string(), - extracted_requirement=', '.join(gem.requirements), - # FIXME: get proper scope... This does not seem right - scope='dependencies', - is_runtime=True, - is_optional=False, - is_resolved=True, - ) - ) - - yield models.PackageData( - datasource_id=cls.datasource_id, - type=cls.default_package_type, - dependencies=dependencies, - primary_language=cls.default_primary_language, - ) - if not all_gems: return @@ -294,7 +269,7 @@ def parse(cls, location): is_runtime=True, is_optional=False, is_resolved=True, - ) for dep in main_gem.dependencies.values() + ) for dep in all_gems[1:] ] urls = get_urls(main_gem.name, main_gem.version) From 4c7bb331b9d5dfd23397d0657c8ee6e0d8a8d334 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 1 Sep 2022 18:13:56 -0700 Subject: [PATCH 07/54] Track primary gem in GemfileLock parser #3072 Signed-off-by: Jono Yang --- src/packagedcode/gemfile_lock.py | 16 +++++++ src/packagedcode/rubygems.py | 76 +++++++++++++++++++++----------- 2 files changed, 66 insertions(+), 26 deletions(-) diff --git a/src/packagedcode/gemfile_lock.py b/src/packagedcode/gemfile_lock.py index bb7ac0d0a53..b830faf22b5 100644 --- a/src/packagedcode/gemfile_lock.py +++ b/src/packagedcode/gemfile_lock.py @@ -368,6 +368,9 @@ def __init__(self, lockfile): # the final tree of dependencies, keyed by name self.dependency_tree = {} + # the package that the gemfile.lock is for + self.primary_gem = None + # a flat dict of all gems, keyed by name self.all_gems = {} @@ -399,6 +402,9 @@ def __init__(self, lockfile): # finally refine the collected data self.refine() + # set primary gem + self.set_primary_gem() + def reset_state (self): self.state = None self.current_options = {} @@ -409,6 +415,16 @@ def refine(self): for gem in self.all_gems.values(): gem.refine() + def set_primary_gem(self): + for gem in self.all_gems.values(): + if gem.type == PATH: + self.primary_gem = Gem( + gem.name, + gem.version, + gem.platform, + ) + break + def get_or_create(self, name, version=None, platform=None): """ Return an existing gem if it exists or creates a new one. diff --git a/src/packagedcode/rubygems.py b/src/packagedcode/rubygems.py index 77315bfdcaf..d9410d4bf95 100644 --- a/src/packagedcode/rubygems.py +++ b/src/packagedcode/rubygems.py @@ -256,32 +256,56 @@ def parse(cls, location): if not all_gems: return - main_gem = all_gems[0] - deps = [ - models.DependentPackage( - purl=PackageURL( - type='gem', - name=dep.name, - version=dep.version - ).to_string(), - extracted_requirement=', '.join(dep.requirements), - scope='dependencies', - is_runtime=True, - is_optional=False, - is_resolved=True, - ) for dep in all_gems[1:] - ] - urls = get_urls(main_gem.name, main_gem.version) - - yield models.PackageData( - datasource_id=cls.datasource_id, - primary_language=cls.default_primary_language, - type=cls.default_package_type, - name=main_gem.name, - version=main_gem.version, - dependencies=deps, - **urls - ) + primary_gem = gemfile_lock.primary_gem + if primary_gem: + deps = [ + models.DependentPackage( + purl=PackageURL( + type='gem', + name=dep.name, + version=dep.version + ).to_string(), + extracted_requirement=', '.join(dep.requirements), + scope='dependencies', + is_runtime=True, + is_optional=False, + is_resolved=True, + ) for dep in all_gems[1:] + ] + urls = get_urls(primary_gem.name, primary_gem.version) + + yield models.PackageData( + datasource_id=cls.datasource_id, + primary_language=cls.default_primary_language, + type=cls.default_package_type, + name=primary_gem.name, + version=primary_gem.version, + dependencies=deps, + **urls + ) + else: + deps = [ + models.DependentPackage( + purl=PackageURL( + type='gem', + name=gem.name, + version=gem.version + ).to_string(), + extracted_requirement=', '.join(gem.requirements), + # FIXME: get proper scope... This does not seem right + scope='dependencies', + is_runtime=True, + is_optional=False, + is_resolved=True, + ) for gem in all_gems + ] + + yield models.PackageData( + datasource_id=cls.datasource_id, + type=cls.default_package_type, + dependencies=deps, + primary_language=cls.default_primary_language, + ) class GemfileLockInExtractedGemHandler(GemfileLockHandler): From 023c4520b4ccf66c972e05dc67a67ba41cb7b015 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 2 Sep 2022 10:54:12 -0700 Subject: [PATCH 08/54] Update GemfileParser #3072 * Add new step in GemfileParser.__init__() to determine the Ruby package that this gemfile.lock is for * Add new test Signed-off-by: Jono Yang --- src/packagedcode/gemfile_lock.py | 11 +- src/packagedcode/rubygems.py | 2 +- .../gemfile-lock/Gemfile.lock.expected | 3240 ----------------- .../rubygems/gemfile-lock/path/Gemfile.lock | 58 + .../gemfile-lock/path/Gemfile.lock.expected | 219 ++ tests/packagedcode/test_rubygems.py | 6 + 6 files changed, 288 insertions(+), 3248 deletions(-) create mode 100644 tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock create mode 100644 tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock.expected diff --git a/src/packagedcode/gemfile_lock.py b/src/packagedcode/gemfile_lock.py index b830faf22b5..66dff924569 100644 --- a/src/packagedcode/gemfile_lock.py +++ b/src/packagedcode/gemfile_lock.py @@ -417,13 +417,10 @@ def refine(self): def set_primary_gem(self): for gem in self.all_gems.values(): - if gem.type == PATH: - self.primary_gem = Gem( - gem.name, - gem.version, - gem.platform, - ) - break + if not gem.type == PATH: + continue + self.primary_gem = gem + break def get_or_create(self, name, version=None, platform=None): """ diff --git a/src/packagedcode/rubygems.py b/src/packagedcode/rubygems.py index d9410d4bf95..b13e4b780aa 100644 --- a/src/packagedcode/rubygems.py +++ b/src/packagedcode/rubygems.py @@ -270,7 +270,7 @@ def parse(cls, location): is_runtime=True, is_optional=False, is_resolved=True, - ) for dep in all_gems[1:] + ) for dep in all_gems if dep != primary_gem ] urls = get_urls(primary_gem.name, primary_gem.version) diff --git a/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected b/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected index 80de88c6cff..88f3b434c53 100644 --- a/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected +++ b/tests/packagedcode/data/rubygems/gemfile-lock/Gemfile.lock.expected @@ -675,3245 +675,5 @@ "api_data_url": null, "datasource_id": "gemfile_lock", "purl": null - }, - { - "type": "gem", - "namespace": null, - "name": "actioncable", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/actioncable-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actionpack@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/nio4r@2.1.0", - "extracted_requirement": ">= 1.2, < 3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/websocket-driver@0.6.5", - "extracted_requirement": "~> 0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/actioncable/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/actioncable-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/actioncable/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/actioncable@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "actionpack", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/actionpack-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actionview@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rack@2.0.3", - "extracted_requirement": "~> 2.0, >= 1.0, > 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rack-test@0.6.3", - "extracted_requirement": "~> 0.6.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rails-dom-testing@2.0.3", - "extracted_requirement": "~> 2.0, >= 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rails-html-sanitizer@1.0.3", - "extracted_requirement": "~> 1.0, >= 1.0.2, >= 1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/actionpack/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/actionpack-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/actionpack/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/actionpack@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "nio4r", - "version": "2.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/nio4r-2.1.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/nio4r/versions/2.1.0", - "repository_download_url": "https://rubygems.org/downloads/nio4r-2.1.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/nio4r/versions/2.1.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/nio4r@2.1.0" - }, - { - "type": "gem", - "namespace": null, - "name": "websocket-driver", - "version": "0.6.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/websocket-driver-0.6.5.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/websocket-extensions@0.1.2", - "extracted_requirement": ">= 0.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/websocket-driver/versions/0.6.5", - "repository_download_url": "https://rubygems.org/downloads/websocket-driver-0.6.5.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/websocket-driver/versions/0.6.5.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/websocket-driver@0.6.5" - }, - { - "type": "gem", - "namespace": null, - "name": "actionmailer", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/actionmailer-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actionpack@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/actionview@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activejob@5.0.6", - "extracted_requirement": "= 5.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/mail@2.6.6", - "extracted_requirement": "~> 2.5, >= 2.5.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rails-dom-testing@2.0.3", - "extracted_requirement": "~> 2.0, >= 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/actionmailer/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/actionmailer-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/actionmailer/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/actionmailer@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "actionview", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/actionview-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/builder@3.2.3", - "extracted_requirement": "~> 3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/erubis@2.7.0", - "extracted_requirement": "~> 2.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rails-dom-testing@2.0.3", - "extracted_requirement": "~> 2.0, >= 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rails-html-sanitizer@1.0.3", - "extracted_requirement": "~> 1.0, >= 1.0.2, >= 1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/actionview/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/actionview-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/actionview/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/actionview@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "activejob", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/activejob-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/globalid@0.4.0", - "extracted_requirement": ">= 0.3.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/activejob/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/activejob-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/activejob/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/activejob@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "mail", - "version": "2.6.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/mail-2.6.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/mime-types@3.1", - "extracted_requirement": ">= 1.16, < 4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/mail/versions/2.6.6", - "repository_download_url": "https://rubygems.org/downloads/mail-2.6.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/mail/versions/2.6.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/mail@2.6.6" - }, - { - "type": "gem", - "namespace": null, - "name": "rails-dom-testing", - "version": "2.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rails-dom-testing-2.0.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/nokogiri@1.8.1", - "extracted_requirement": ">= 1.5.9, >= 1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/rails-dom-testing/versions/2.0.3", - "repository_download_url": "https://rubygems.org/downloads/rails-dom-testing-2.0.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rails-dom-testing/versions/2.0.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rails-dom-testing@2.0.3" - }, - { - "type": "gem", - "namespace": null, - "name": "activesupport", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/activesupport-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/concurrent-ruby@1.0.5", - "extracted_requirement": "~> 1.0, >= 1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/i18n@0.8.6", - "extracted_requirement": "~> 0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/minitest@5.10.3", - "extracted_requirement": "~> 5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/tzinfo@1.2.3", - "extracted_requirement": "~> 1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/activesupport/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/activesupport-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/activesupport/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/activesupport@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "rack", - "version": "2.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rack-2.0.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/rack/versions/2.0.3", - "repository_download_url": "https://rubygems.org/downloads/rack-2.0.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rack/versions/2.0.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rack@2.0.3" - }, - { - "type": "gem", - "namespace": null, - "name": "rack-test", - "version": "0.6.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rack-test-0.6.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/rack@2.0.3", - "extracted_requirement": "~> 2.0, >= 1.0, > 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/rack-test/versions/0.6.3", - "repository_download_url": "https://rubygems.org/downloads/rack-test-0.6.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rack-test/versions/0.6.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rack-test@0.6.3" - }, - { - "type": "gem", - "namespace": null, - "name": "rails-html-sanitizer", - "version": "1.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rails-html-sanitizer-1.0.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/loofah@2.1.1", - "extracted_requirement": "~> 2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/rails-html-sanitizer/versions/1.0.3", - "repository_download_url": "https://rubygems.org/downloads/rails-html-sanitizer-1.0.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rails-html-sanitizer/versions/1.0.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rails-html-sanitizer@1.0.3" - }, - { - "type": "gem", - "namespace": null, - "name": "builder", - "version": "3.2.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/builder-3.2.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/builder/versions/3.2.3", - "repository_download_url": "https://rubygems.org/downloads/builder-3.2.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/builder/versions/3.2.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/builder@3.2.3" - }, - { - "type": "gem", - "namespace": null, - "name": "erubis", - "version": "2.7.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/erubis-2.7.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/erubis/versions/2.7.0", - "repository_download_url": "https://rubygems.org/downloads/erubis-2.7.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/erubis/versions/2.7.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/erubis@2.7.0" - }, - { - "type": "gem", - "namespace": null, - "name": "globalid", - "version": "0.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/globalid-0.4.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/globalid/versions/0.4.0", - "repository_download_url": "https://rubygems.org/downloads/globalid-0.4.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/globalid/versions/0.4.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/globalid@0.4.0" - }, - { - "type": "gem", - "namespace": null, - "name": "activemodel", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/activemodel-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/activemodel/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/activemodel-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/activemodel/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/activemodel@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "activerecord", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/activerecord-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activemodel@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/arel@7.1.4", - "extracted_requirement": "~> 7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/activerecord/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/activerecord-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/activerecord/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/activerecord@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "arel", - "version": "7.1.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/arel-7.1.4.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/arel/versions/7.1.4", - "repository_download_url": "https://rubygems.org/downloads/arel-7.1.4.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/arel/versions/7.1.4.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/arel@7.1.4" - }, - { - "type": "gem", - "namespace": null, - "name": "concurrent-ruby", - "version": "1.0.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/concurrent-ruby-1.0.5.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/concurrent-ruby/versions/1.0.5", - "repository_download_url": "https://rubygems.org/downloads/concurrent-ruby-1.0.5.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/concurrent-ruby/versions/1.0.5.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/concurrent-ruby@1.0.5" - }, - { - "type": "gem", - "namespace": null, - "name": "i18n", - "version": "0.8.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/i18n-0.8.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/i18n/versions/0.8.6", - "repository_download_url": "https://rubygems.org/downloads/i18n-0.8.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/i18n/versions/0.8.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/i18n@0.8.6" - }, - { - "type": "gem", - "namespace": null, - "name": "minitest", - "version": "5.10.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/minitest-5.10.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/minitest/versions/5.10.3", - "repository_download_url": "https://rubygems.org/downloads/minitest-5.10.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/minitest/versions/5.10.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/minitest@5.10.3" - }, - { - "type": "gem", - "namespace": null, - "name": "tzinfo", - "version": "1.2.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/tzinfo-1.2.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/thread_safe@0.3.6", - "extracted_requirement": "~> 0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/tzinfo/versions/1.2.3", - "repository_download_url": "https://rubygems.org/downloads/tzinfo-1.2.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/tzinfo/versions/1.2.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/tzinfo@1.2.3" - }, - { - "type": "gem", - "namespace": null, - "name": "bindex", - "version": "0.5.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/bindex-0.5.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/bindex/versions/0.5.0", - "repository_download_url": "https://rubygems.org/downloads/bindex-0.5.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/bindex/versions/0.5.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/bindex@0.5.0" - }, - { - "type": "gem", - "namespace": null, - "name": "byebug", - "version": "9.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/byebug-9.1.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/byebug/versions/9.1.0", - "repository_download_url": "https://rubygems.org/downloads/byebug-9.1.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/byebug/versions/9.1.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/byebug@9.1.0" - }, - { - "type": "gem", - "namespace": null, - "name": "coffee-rails", - "version": "4.2.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/coffee-rails-4.2.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/coffee-script@2.4.1", - "extracted_requirement": ">= 2.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/railties@5.0.6", - "extracted_requirement": ">= 4.0.0, >= 4.2.0, = 5.0.6, < 6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/coffee-rails/versions/4.2.2", - "repository_download_url": "https://rubygems.org/downloads/coffee-rails-4.2.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/coffee-rails/versions/4.2.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/coffee-rails@4.2.2" - }, - { - "type": "gem", - "namespace": null, - "name": "coffee-script", - "version": "2.4.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/coffee-script-2.4.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/coffee-script-source@1.12.2", - "extracted_requirement": "", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/execjs@2.7.0", - "extracted_requirement": ">= 0.3.0, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/coffee-script/versions/2.4.1", - "repository_download_url": "https://rubygems.org/downloads/coffee-script-2.4.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/coffee-script/versions/2.4.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/coffee-script@2.4.1" - }, - { - "type": "gem", - "namespace": null, - "name": "railties", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/railties-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actionpack@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/method_source@0.9.0", - "extracted_requirement": "", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rake@12.1.0", - "extracted_requirement": ">= 0.8.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/thor@0.20.0", - "extracted_requirement": ">= 0.14, < 2.0, >= 0.18.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/railties/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/railties-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/railties/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/railties@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "coffee-script-source", - "version": "1.12.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/coffee-script-source-1.12.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/coffee-script-source/versions/1.12.2", - "repository_download_url": "https://rubygems.org/downloads/coffee-script-source-1.12.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/coffee-script-source/versions/1.12.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/coffee-script-source@1.12.2" - }, - { - "type": "gem", - "namespace": null, - "name": "execjs", - "version": "2.7.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/execjs-2.7.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/execjs/versions/2.7.0", - "repository_download_url": "https://rubygems.org/downloads/execjs-2.7.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/execjs/versions/2.7.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/execjs@2.7.0" - }, - { - "type": "gem", - "namespace": null, - "name": "crass", - "version": "1.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/crass-1.0.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/crass/versions/1.0.2", - "repository_download_url": "https://rubygems.org/downloads/crass-1.0.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/crass/versions/1.0.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/crass@1.0.2" - }, - { - "type": "gem", - "namespace": null, - "name": "ffi", - "version": "1.9.18", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/ffi-1.9.18.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/ffi/versions/1.9.18", - "repository_download_url": "https://rubygems.org/downloads/ffi-1.9.18.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/ffi/versions/1.9.18.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/ffi@1.9.18" - }, - { - "type": "gem", - "namespace": null, - "name": "jbuilder", - "version": "2.7.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/jbuilder-2.7.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/multi_json@1.12.2", - "extracted_requirement": ">= 1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/jbuilder/versions/2.7.0", - "repository_download_url": "https://rubygems.org/downloads/jbuilder-2.7.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/jbuilder/versions/2.7.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/jbuilder@2.7.0" - }, - { - "type": "gem", - "namespace": null, - "name": "multi_json", - "version": "1.12.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/multi_json-1.12.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/multi_json/versions/1.12.2", - "repository_download_url": "https://rubygems.org/downloads/multi_json-1.12.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/multi_json/versions/1.12.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/multi_json@1.12.2" - }, - { - "type": "gem", - "namespace": null, - "name": "jquery-rails", - "version": "4.3.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/jquery-rails-4.3.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/rails-dom-testing@2.0.3", - "extracted_requirement": "~> 2.0, >= 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/railties@5.0.6", - "extracted_requirement": ">= 4.0.0, >= 4.2.0, = 5.0.6, < 6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/thor@0.20.0", - "extracted_requirement": ">= 0.14, < 2.0, >= 0.18.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/jquery-rails/versions/4.3.1", - "repository_download_url": "https://rubygems.org/downloads/jquery-rails-4.3.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/jquery-rails/versions/4.3.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/jquery-rails@4.3.1" - }, - { - "type": "gem", - "namespace": null, - "name": "thor", - "version": "0.20.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/thor-0.20.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/thor/versions/0.20.0", - "repository_download_url": "https://rubygems.org/downloads/thor-0.20.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/thor/versions/0.20.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/thor@0.20.0" - }, - { - "type": "gem", - "namespace": null, - "name": "listen", - "version": "3.0.8", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/listen-3.0.8.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/rb-fsevent@0.10.2", - "extracted_requirement": "~> 0.9, >= 0.9.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rb-inotify@0.9.10", - "extracted_requirement": "~> 0.9, >= 0.9.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/listen/versions/3.0.8", - "repository_download_url": "https://rubygems.org/downloads/listen-3.0.8.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/listen/versions/3.0.8.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/listen@3.0.8" - }, - { - "type": "gem", - "namespace": null, - "name": "rb-fsevent", - "version": "0.10.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rb-fsevent-0.10.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/rb-fsevent/versions/0.10.2", - "repository_download_url": "https://rubygems.org/downloads/rb-fsevent-0.10.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rb-fsevent/versions/0.10.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rb-fsevent@0.10.2" - }, - { - "type": "gem", - "namespace": null, - "name": "rb-inotify", - "version": "0.9.10", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rb-inotify-0.9.10.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/ffi@1.9.18", - "extracted_requirement": ">= 0.5.0, < 2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/rb-inotify/versions/0.9.10", - "repository_download_url": "https://rubygems.org/downloads/rb-inotify-0.9.10.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rb-inotify/versions/0.9.10.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rb-inotify@0.9.10" - }, - { - "type": "gem", - "namespace": null, - "name": "loofah", - "version": "2.1.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/loofah-2.1.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/crass@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:gem/nokogiri@1.8.1", - "extracted_requirement": ">= 1.5.9, >= 1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/loofah/versions/2.1.1", - "repository_download_url": "https://rubygems.org/downloads/loofah-2.1.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/loofah/versions/2.1.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/loofah@2.1.1" - }, - { - "type": "gem", - "namespace": null, - "name": "nokogiri", - "version": "1.8.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/nokogiri-1.8.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/mini_portile2@2.3.0", - "extracted_requirement": "~> 2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/nokogiri/versions/1.8.1", - "repository_download_url": "https://rubygems.org/downloads/nokogiri-1.8.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/nokogiri/versions/1.8.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/nokogiri@1.8.1" - }, - { - "type": "gem", - "namespace": null, - "name": "mime-types", - "version": "3.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/mime-types-3.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/mime-types-data@3.2016.0521", - "extracted_requirement": "~> 3.2015", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/mime-types/versions/3.1", - "repository_download_url": "https://rubygems.org/downloads/mime-types-3.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/mime-types/versions/3.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/mime-types@3.1" - }, - { - "type": "gem", - "namespace": null, - "name": "method_source", - "version": "0.9.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/method_source-0.9.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/method_source/versions/0.9.0", - "repository_download_url": "https://rubygems.org/downloads/method_source-0.9.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/method_source/versions/0.9.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/method_source@0.9.0" - }, - { - "type": "gem", - "namespace": null, - "name": "mime-types-data", - "version": "3.2016.0521", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/mime-types-data-3.2016.0521.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/mime-types-data/versions/3.2016.0521", - "repository_download_url": "https://rubygems.org/downloads/mime-types-data-3.2016.0521.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/mime-types-data/versions/3.2016.0521.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/mime-types-data@3.2016.0521" - }, - { - "type": "gem", - "namespace": null, - "name": "mini_portile2", - "version": "2.3.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/mini_portile2-2.3.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/mini_portile2/versions/2.3.0", - "repository_download_url": "https://rubygems.org/downloads/mini_portile2-2.3.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/mini_portile2/versions/2.3.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/mini_portile2@2.3.0" - }, - { - "type": "gem", - "namespace": null, - "name": "puma", - "version": "3.10.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/puma-3.10.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/puma/versions/3.10.0", - "repository_download_url": "https://rubygems.org/downloads/puma-3.10.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/puma/versions/3.10.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/puma@3.10.0" - }, - { - "type": "gem", - "namespace": null, - "name": "rails", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rails-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actioncable@5.0.6", - "extracted_requirement": "= 5.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/actionmailer@5.0.6", - "extracted_requirement": "= 5.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/actionpack@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/actionview@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activejob@5.0.6", - "extracted_requirement": "= 5.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activemodel@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activerecord@5.0.6", - "extracted_requirement": "= 5.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/railties@5.0.6", - "extracted_requirement": ">= 4.0.0, >= 4.2.0, = 5.0.6, < 6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/sprockets-rails@3.2.1", - "extracted_requirement": ">= 2.0.0, >= 2.0, < 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/rails/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/rails-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rails/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rails@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "sprockets-rails", - "version": "3.2.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/sprockets-rails-3.2.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actionpack@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/sprockets@3.7.1", - "extracted_requirement": ">= 2.8, < 4.0, >= 3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/sprockets-rails/versions/3.2.1", - "repository_download_url": "https://rubygems.org/downloads/sprockets-rails-3.2.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/sprockets-rails/versions/3.2.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/sprockets-rails@3.2.1" - }, - { - "type": "gem", - "namespace": null, - "name": "rake", - "version": "12.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/rake-12.1.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/rake/versions/12.1.0", - "repository_download_url": "https://rubygems.org/downloads/rake-12.1.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/rake/versions/12.1.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/rake@12.1.0" - }, - { - "type": "gem", - "namespace": null, - "name": "sass", - "version": "3.5.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/sass-3.5.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/sass-listen@4.0.0", - "extracted_requirement": "~> 4.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/sass/versions/3.5.2", - "repository_download_url": "https://rubygems.org/downloads/sass-3.5.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/sass/versions/3.5.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/sass@3.5.2" - }, - { - "type": "gem", - "namespace": null, - "name": "sass-listen", - "version": "4.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/sass-listen-4.0.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/rb-fsevent@0.10.2", - "extracted_requirement": "~> 0.9, >= 0.9.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rb-inotify@0.9.10", - "extracted_requirement": "~> 0.9, >= 0.9.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/sass-listen/versions/4.0.0", - "repository_download_url": "https://rubygems.org/downloads/sass-listen-4.0.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/sass-listen/versions/4.0.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/sass-listen@4.0.0" - }, - { - "type": "gem", - "namespace": null, - "name": "sass-rails", - "version": "5.0.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/sass-rails-5.0.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/railties@5.0.6", - "extracted_requirement": ">= 4.0.0, >= 4.2.0, = 5.0.6, < 6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/sass@3.5.2", - "extracted_requirement": "~> 3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/sprockets@3.7.1", - "extracted_requirement": ">= 2.8, < 4.0, >= 3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/sprockets-rails@3.2.1", - "extracted_requirement": ">= 2.0.0, >= 2.0, < 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/tilt@2.0.8", - "extracted_requirement": ">= 1.1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/sass-rails/versions/5.0.6", - "repository_download_url": "https://rubygems.org/downloads/sass-rails-5.0.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/sass-rails/versions/5.0.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/sass-rails@5.0.6" - }, - { - "type": "gem", - "namespace": null, - "name": "sprockets", - "version": "3.7.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/sprockets-3.7.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/concurrent-ruby@1.0.5", - "extracted_requirement": "~> 1.0, >= 1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/rack@2.0.3", - "extracted_requirement": "~> 2.0, >= 1.0, > 1, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/sprockets/versions/3.7.1", - "repository_download_url": "https://rubygems.org/downloads/sprockets-3.7.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/sprockets/versions/3.7.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/sprockets@3.7.1" - }, - { - "type": "gem", - "namespace": null, - "name": "tilt", - "version": "2.0.8", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/tilt-2.0.8.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/tilt/versions/2.0.8", - "repository_download_url": "https://rubygems.org/downloads/tilt-2.0.8.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/tilt/versions/2.0.8.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/tilt@2.0.8" - }, - { - "type": "gem", - "namespace": null, - "name": "spring", - "version": "2.0.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/spring-2.0.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/activesupport@5.0.6", - "extracted_requirement": "= 5.0.6, >= 4.2.0, >= 4.2, >= 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/spring/versions/2.0.2", - "repository_download_url": "https://rubygems.org/downloads/spring-2.0.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/spring/versions/2.0.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/spring@2.0.2" - }, - { - "type": "gem", - "namespace": null, - "name": "spring-watcher-listen", - "version": "2.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/spring-watcher-listen-2.0.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/listen@3.0.8", - "extracted_requirement": "~> 3.0.5, >= 2.7, < 4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/spring@2.0.2", - "extracted_requirement": ">= 1.2, < 3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/spring-watcher-listen/versions/2.0.1", - "repository_download_url": "https://rubygems.org/downloads/spring-watcher-listen-2.0.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/spring-watcher-listen/versions/2.0.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/spring-watcher-listen@2.0.1" - }, - { - "type": "gem", - "namespace": null, - "name": "sqlite3", - "version": "1.3.13", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/sqlite3-1.3.13.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/sqlite3/versions/1.3.13", - "repository_download_url": "https://rubygems.org/downloads/sqlite3-1.3.13.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/sqlite3/versions/1.3.13.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/sqlite3@1.3.13" - }, - { - "type": "gem", - "namespace": null, - "name": "thread_safe", - "version": "0.3.6", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/thread_safe-0.3.6.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/thread_safe/versions/0.3.6", - "repository_download_url": "https://rubygems.org/downloads/thread_safe-0.3.6.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/thread_safe/versions/0.3.6.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/thread_safe@0.3.6" - }, - { - "type": "gem", - "namespace": null, - "name": "turbolinks", - "version": "5.0.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/turbolinks-5.0.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/turbolinks-source@5.0.3", - "extracted_requirement": "~> 5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/turbolinks/versions/5.0.1", - "repository_download_url": "https://rubygems.org/downloads/turbolinks-5.0.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/turbolinks/versions/5.0.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/turbolinks@5.0.1" - }, - { - "type": "gem", - "namespace": null, - "name": "turbolinks-source", - "version": "5.0.3", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/turbolinks-source-5.0.3.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/turbolinks-source/versions/5.0.3", - "repository_download_url": "https://rubygems.org/downloads/turbolinks-source-5.0.3.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/turbolinks-source/versions/5.0.3.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/turbolinks-source@5.0.3" - }, - { - "type": "gem", - "namespace": null, - "name": "uglifier", - "version": "3.2.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/uglifier-3.2.0.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/execjs@2.7.0", - "extracted_requirement": ">= 0.3.0, < 3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/uglifier/versions/3.2.0", - "repository_download_url": "https://rubygems.org/downloads/uglifier-3.2.0.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/uglifier/versions/3.2.0.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/uglifier@3.2.0" - }, - { - "type": "gem", - "namespace": null, - "name": "web-console", - "version": "3.5.1", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/web-console-3.5.1.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:gem/actionview@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/activemodel@5.0.6", - "extracted_requirement": "= 5.0.6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/bindex@0.5.0", - "extracted_requirement": ">= 0.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:gem/railties@5.0.6", - "extracted_requirement": ">= 4.0.0, >= 4.2.0, = 5.0.6, < 6, >= 5.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://rubygems.org/gems/web-console/versions/3.5.1", - "repository_download_url": "https://rubygems.org/downloads/web-console-3.5.1.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/web-console/versions/3.5.1.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/web-console@3.5.1" - }, - { - "type": "gem", - "namespace": null, - "name": "websocket-extensions", - "version": "0.1.2", - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://rubygems.org/downloads/websocket-extensions-0.1.2.gem", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/websocket-extensions/versions/0.1.2", - "repository_download_url": "https://rubygems.org/downloads/websocket-extensions-0.1.2.gem", - "api_data_url": "https://rubygems.org/api/v2/rubygems/websocket-extensions/versions/0.1.2.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/websocket-extensions@0.1.2" - }, - { - "type": "gem", - "namespace": null, - "name": "tzinfo-data", - "version": null, - "qualifiers": {}, - "subpath": null, - "primary_language": "Ruby", - "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, - "license_expression": null, - "declared_license": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://rubygems.org/gems/tzinfo-data", - "repository_download_url": null, - "api_data_url": "https://rubygems.org/api/v1/versions/tzinfo-data.json", - "datasource_id": "gemfile_lock", - "purl": "pkg:gem/tzinfo-data" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock b/tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock new file mode 100644 index 00000000000..1ce0a096b77 --- /dev/null +++ b/tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock @@ -0,0 +1,58 @@ +PATH + remote: . + specs: + awesome_print (1.8.0) + +GEM + remote: https://rubygems.org/ + specs: + appraisal (2.2.0) + bundler + rake + thor (>= 0.14.0) + codeclimate-test-reporter (1.0.8) + simplecov (<= 0.13) + diff-lcs (1.3) + docile (1.1.5) + fakefs (0.11.0) + json (2.1.0) + mini_portile2 (2.2.0) + nokogiri (1.8.0) + mini_portile2 (~> 2.2.0) + rake (12.0.0) + rspec (3.6.0) + rspec-core (~> 3.6.0) + rspec-expectations (~> 3.6.0) + rspec-mocks (~> 3.6.0) + rspec-core (3.6.0) + rspec-support (~> 3.6.0) + rspec-expectations (3.6.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.6.0) + rspec-mocks (3.6.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.6.0) + rspec-support (3.6.0) + simplecov (0.13.0) + docile (~> 1.1.0) + json (>= 1.8, < 3) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.1) + sqlite3 (1.3.13) + thor (0.19.4) + +PLATFORMS + ruby + +DEPENDENCIES + appraisal + awesome_print! + codeclimate-test-reporter + fakefs (>= 0.2.1) + nokogiri (>= 1.6.5) + rspec (>= 3.0.0) + simplecov + sqlite3 + +BUNDLED WITH + 1.14.6 diff --git a/tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock.expected b/tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock.expected new file mode 100644 index 00000000000..966de37650a --- /dev/null +++ b/tests/packagedcode/data/rubygems/gemfile-lock/path/Gemfile.lock.expected @@ -0,0 +1,219 @@ +[ + { + "type": "gem", + "namespace": null, + "name": "awesome_print", + "version": "1.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Ruby", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://rubygems.org/downloads/awesome_print-1.8.0.gem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:gem/appraisal@2.2.0", + "extracted_requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/rake@12.0.0", + "extracted_requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/thor@0.19.4", + "extracted_requirement": ">= 0.14.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/codeclimate-test-reporter@1.0.8", + "extracted_requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/simplecov@0.13.0", + "extracted_requirement": "<= 0.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/diff-lcs@1.3", + "extracted_requirement": ">= 1.2.0, < 2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/docile@1.1.5", + "extracted_requirement": "~> 1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/fakefs@0.11.0", + "extracted_requirement": ">= 0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/json@2.1.0", + "extracted_requirement": ">= 1.8, < 3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/mini_portile2@2.2.0", + "extracted_requirement": "~> 2.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/nokogiri@1.8.0", + "extracted_requirement": ">= 1.6.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/rspec@3.6.0", + "extracted_requirement": ">= 3.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/rspec-core@3.6.0", + "extracted_requirement": "~> 3.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/rspec-expectations@3.6.0", + "extracted_requirement": "~> 3.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/rspec-mocks@3.6.0", + "extracted_requirement": "~> 3.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/rspec-support@3.6.0", + "extracted_requirement": "~> 3.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/simplecov-html@0.10.1", + "extracted_requirement": "~> 0.10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:gem/sqlite3@1.3.13", + "extracted_requirement": "", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://rubygems.org/gems/awesome_print/versions/1.8.0", + "repository_download_url": "https://rubygems.org/downloads/awesome_print-1.8.0.gem", + "api_data_url": "https://rubygems.org/api/v2/rubygems/awesome_print/versions/1.8.0.json", + "datasource_id": "gemfile_lock", + "purl": "pkg:gem/awesome_print@1.8.0" + } +] \ No newline at end of file diff --git a/tests/packagedcode/test_rubygems.py b/tests/packagedcode/test_rubygems.py index 0ac0d6dad57..c91acbfb341 100644 --- a/tests/packagedcode/test_rubygems.py +++ b/tests/packagedcode/test_rubygems.py @@ -167,6 +167,12 @@ def test_ruby_gemfile_lock_as_dict(self): packages = rubygems.GemfileLockHandler.parse(test_file) self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + def test_ruby_gemfile_lock_with_path_as_dict(self): + test_file = self.get_test_loc('rubygems/gemfile-lock/path/Gemfile.lock') + expected_loc = self.get_test_loc('rubygems/gemfile-lock/path/Gemfile.lock.expected') + packages = rubygems.GemfileLockHandler.parse(test_file) + self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + build_tests( test_dir='rubygems/gem', From 2e971c46288ddee30300968fcdb5f4ebacf6549c Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 4 Sep 2022 18:14:07 +0200 Subject: [PATCH 09/54] Create FUNDING.yml This will help aspiring sponsors find the AboutCode opencollective at https://opencollective.com/aboutcode Signed-off-by: Philippe Ombredanne --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000000..b2d563d6e41 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +open_collective: aboutcode From d6b68d297c9b8c007cf92d9fb9e9df4acecd802a Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 2 Sep 2022 17:18:11 -0700 Subject: [PATCH 10/54] Prefer using PKG-INFO from .egg-info in assemble #3083 * Add test for checking that the .egg-info PKG-INFO is the only Package source reported * Update test expectations Signed-off-by: Jono Yang --- .gitignore | 1 + src/packagedcode/pypi.py | 46 +- .../data/about/aboutfiles.expected.json | 26 - .../data/build/bazel/end2end-expected.json | 26 - .../data/build/buck/end2end-expected.json | 26 - .../assemble/solo/Podfile-expected.json | 26 - .../solo/RxDataSources.podspec-expected.json | 26 - .../get_package_resources.scan.expected.json | 26 - .../celery-expected.json | 8105 +++++++++++++++++ .../prefer-egg-info-pkg-info/celery/PKG-INFO | 605 ++ .../celery/celery.egg-info/PKG-INFO | 605 ++ .../celery/celery.egg-info/SOURCES.txt | 652 ++ .../celery.egg-info/dependency_links.txt | 1 + .../celery/celery.egg-info/entry_points.txt | 3 + .../celery/celery.egg-info/not-zip-safe | 1 + .../celery/celery.egg-info/requires.txt | 122 + .../celery/celery.egg-info/top_level.txt | 1 + .../expected-results.json | 26 - tests/packagedcode/test_pypi.py | 17 + 19 files changed, 10158 insertions(+), 183 deletions(-) create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/PKG-INFO create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/PKG-INFO create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/SOURCES.txt create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/dependency_links.txt create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/entry_points.txt create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/not-zip-safe create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/requires.txt create mode 100644 tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/top_level.txt diff --git a/.gitignore b/.gitignore index 214d0badc28..fe842f9c2ea 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ /src/*.egg-info *.egg-info !tests/packagedcode/data/pypi/source-package/pip-22.0.4/src/pip.egg-info +!tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info /dist /build /bin diff --git a/src/packagedcode/pypi.py b/src/packagedcode/pypi.py index 5ba37bf194d..34b20d33c01 100644 --- a/src/packagedcode/pypi.py +++ b/src/packagedcode/pypi.py @@ -29,6 +29,7 @@ import pkginfo2 from commoncode import fileutils from commoncode.fileutils import as_posixpath +from commoncode.resource import Resource from packaging.specifiers import SpecifierSet from packageurl import PackageURL from packaging import markers @@ -133,6 +134,16 @@ def create_package_from_package_data(package_data, datafile_path): return package +def is_egg_info_directory(resource): + """ + Return True if `resource` is a Python .egg-info directory + """ + return ( + isinstance(resource, Resource) + and resource.path.endswith('.egg-info') + ) + + class BaseExtractedPythonLayout(BasePypiHandler): """ Base class for development repos, sdist tarballs and other related extracted @@ -152,7 +163,33 @@ def assemble(cls, package_data, resource, codebase, package_adder): package_resource = None if resource.name == 'PKG-INFO': + # Initially use current Resource as `package_resource`. + # We'll want update `package_resource` with the Resource of a + # PKG-INFO file that's in an .egg-info Directory. package_resource = resource + # We want to use the PKG-INFO file from an .egg-info directory, as + # the package info collected from a *.egg_info/PKG-INFO file has + # dependency information that a PKG-INFO from the root of a Python + # project lacks. + parent_resource = resource.parent(codebase) + if not is_egg_info_directory(parent_resource): + # If we are not in an .egg-info directory, we assume we are at + # the root of a Python codebase and we want to find the + # .egg_info dir + egg_info_dir = None + for sibling in resource.siblings(codebase): + if sibling.path.endswith('.egg-info'): + egg_info_dir = sibling + break + + # If we find the .egg_info dir, then we look for the PKG-INFO + # file in it and use that as our package_resource + if egg_info_dir: + for child in egg_info_dir.children(codebase): + if not child.name == 'PKG-INFO': + continue + package_resource = child + break elif resource.name in datafile_name_patterns: if resource.has_parent(): siblings = resource.siblings(codebase) @@ -221,7 +258,14 @@ def assemble(cls, package_data, resource, codebase, package_adder): package.license_expression = compute_normalized_license(package.declared_license) package_uid = package.package_uid - root = package_resource.parent(codebase) + package_resource_parent = package_resource.parent(codebase) + if is_egg_info_directory(package_resource_parent): + root = package_resource_parent.parent(codebase) + else: + # We're assuming that our package resource is already at the + # root + root = package_resource_parent + if root: for py_res in cls.walk_pypi(resource=root, codebase=codebase): if py_res.is_dir: diff --git a/tests/packagedcode/data/about/aboutfiles.expected.json b/tests/packagedcode/data/about/aboutfiles.expected.json index b8f09a7649c..044a93f76cc 100644 --- a/tests/packagedcode/data/about/aboutfiles.expected.json +++ b/tests/packagedcode/data/about/aboutfiles.expected.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 3 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/data/build/bazel/end2end-expected.json b/tests/packagedcode/data/build/bazel/end2end-expected.json index bdf93441da2..725847a8567 100644 --- a/tests/packagedcode/data/build/bazel/end2end-expected.json +++ b/tests/packagedcode/data/build/bazel/end2end-expected.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json-pp": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 6 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/data/build/buck/end2end-expected.json b/tests/packagedcode/data/build/buck/end2end-expected.json index 648c86b4575..a8f951b65d8 100644 --- a/tests/packagedcode/data/build/buck/end2end-expected.json +++ b/tests/packagedcode/data/build/buck/end2end-expected.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json-pp": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 7 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json index 41525d5fb88..760e512382a 100644 --- a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "dependencies": [], "packages": [], "files": [ diff --git a/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json b/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json index 36222548722..89b50cd066c 100644 --- a/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/data/npm/get_package_resources.scan.expected.json b/tests/packagedcode/data/npm/get_package_resources.scan.expected.json index 3d9baafeedb..a44dda233d6 100644 --- a/tests/packagedcode/data/npm/get_package_resources.scan.expected.json +++ b/tests/packagedcode/data/npm/get_package_resources.scan.expected.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 3 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json new file mode 100644 index 00000000000..b3f6ed6834a --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json @@ -0,0 +1,8105 @@ +{ + "dependencies": [ + { + "purl": "pkg:pypi/pytz", + "extracted_requirement": "pytz>=2021.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pytz?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/billiard", + "extracted_requirement": "billiard<4.0,>=3.6.4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/billiard?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/kombu", + "extracted_requirement": "kombu<6.0,>=5.2.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/kombu?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/vine", + "extracted_requirement": "vine<6.0,>=5.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/vine?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/click", + "extracted_requirement": "click<9.0,>=8.0.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/click?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/click-didyoumean", + "extracted_requirement": "click-didyoumean>=0.0.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/click-didyoumean?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/click-repl", + "extracted_requirement": "click-repl>=0.2.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/click-repl?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/click-plugins", + "extracted_requirement": "click-plugins>=1.1.1", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/click-plugins?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/importlib-metadata", + "extracted_requirement": "importlib-metadata>=1.4.0; python_version < \"3.8\"", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/importlib-metadata?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pyarango", + "extracted_requirement": "pyArango>=1.3.2; extra == \"arangodb\"", + "scope": "arangodb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pyarango?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/cryptography", + "extracted_requirement": "cryptography; extra == \"auth\"", + "scope": "auth", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/cryptography?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/azure-storage-blob@12.9.0", + "extracted_requirement": "azure-storage-blob==12.9.0; extra == \"azureblockblob\"", + "scope": "azureblockblob", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/azure-storage-blob@12.9.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/brotli", + "extracted_requirement": "brotli>=1.0.0; platform_python_implementation == \"CPython\" and extra == \"brotli\"", + "scope": "brotli", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/brotli?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/brotlipy", + "extracted_requirement": "brotlipy>=0.7.0; platform_python_implementation == \"PyPy\" and extra == \"brotli\"", + "scope": "brotli", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/brotlipy?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/cassandra-driver", + "extracted_requirement": "cassandra-driver<3.21.0; extra == \"cassandra\"", + "scope": "cassandra", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/cassandra-driver?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/python-consul2", + "extracted_requirement": "python-consul2; extra == \"consul\"", + "scope": "consul", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/python-consul2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pydocumentdb@2.3.2", + "extracted_requirement": "pydocumentdb==2.3.2; extra == \"cosmosdbsql\"", + "scope": "cosmosdbsql", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pydocumentdb@2.3.2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/couchbase", + "extracted_requirement": "couchbase>=3.0.0; (platform_python_implementation != \"PyPy\" and (platform_system != \"Windows\" or python_version < \"3.10\")) and extra == \"couchbase\"", + "scope": "couchbase", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/couchbase?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pycouchdb", + "extracted_requirement": "pycouchdb; extra == \"couchdb\"", + "scope": "couchdb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pycouchdb?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/django", + "extracted_requirement": "Django>=1.11; extra == \"django\"", + "scope": "django", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/django?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/boto3", + "extracted_requirement": "boto3>=1.9.178; extra == \"dynamodb\"", + "scope": "dynamodb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/boto3?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/elasticsearch", + "extracted_requirement": "elasticsearch; extra == \"elasticsearch\"", + "scope": "elasticsearch", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/elasticsearch?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/eventlet", + "extracted_requirement": "eventlet>=0.32.0; python_version < \"3.10\" and extra == \"eventlet\"", + "scope": "eventlet", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/eventlet?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/gevent", + "extracted_requirement": "gevent>=1.5.0; extra == \"gevent\"", + "scope": "gevent", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/gevent?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/librabbitmq", + "extracted_requirement": "librabbitmq>=1.5.0; extra == \"librabbitmq\"", + "scope": "librabbitmq", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/librabbitmq?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pylibmc", + "extracted_requirement": "pylibmc; platform_system != \"Windows\" and extra == \"memcache\"", + "scope": "memcache", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pylibmc?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pymongo", + "extracted_requirement": "pymongo[srv]>=3.11.1; extra == \"mongodb\"", + "scope": "mongodb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pymongo?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/msgpack", + "extracted_requirement": "msgpack; extra == \"msgpack\"", + "scope": "msgpack", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/msgpack?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/python-memcached", + "extracted_requirement": "python-memcached; extra == \"pymemcache\"", + "scope": "pymemcache", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/python-memcached?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pyro4", + "extracted_requirement": "pyro4; extra == \"pyro\"", + "scope": "pyro", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pyro4?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pytest-celery", + "extracted_requirement": "pytest-celery; extra == \"pytest\"", + "scope": "pytest", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pytest-celery?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/redis", + "extracted_requirement": "redis!=4.0.0,!=4.0.1,>=3.4.1; extra == \"redis\"", + "scope": "redis", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/redis?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/boto3", + "extracted_requirement": "boto3>=1.9.125; extra == \"s3\"", + "scope": "s3", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/boto3?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/softlayer-messaging", + "extracted_requirement": "softlayer_messaging>=1.0.3; extra == \"slmq\"", + "scope": "slmq", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/softlayer-messaging?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/ephem", + "extracted_requirement": "ephem; platform_python_implementation != \"PyPy\" and extra == \"solar\"", + "scope": "solar", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/ephem?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/sqlalchemy", + "extracted_requirement": "sqlalchemy; extra == \"sqlalchemy\"", + "scope": "sqlalchemy", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/sqlalchemy?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/kombu", + "extracted_requirement": "kombu[sqs]; extra == \"sqs\"", + "scope": "sqs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/kombu?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/tblib", + "extracted_requirement": "tblib>=1.3.0; python_version < \"3.8.0\" and extra == \"tblib\"", + "scope": "tblib", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/tblib?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/tblib", + "extracted_requirement": "tblib>=1.5.0; python_version >= \"3.8.0\" and extra == \"tblib\"", + "scope": "tblib", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/tblib?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/pyyaml", + "extracted_requirement": "PyYAML>=3.10; extra == \"yaml\"", + "scope": "yaml", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/pyyaml?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/kazoo", + "extracted_requirement": "kazoo>=1.3.1; extra == \"zookeeper\"", + "scope": "zookeeper", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/kazoo?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + }, + { + "purl": "pkg:pypi/zstandard", + "extracted_requirement": "zstandard; extra == \"zstd\"", + "scope": "zstd", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:pypi/zstandard?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "celery/celery.egg-info/PKG-INFO", + "datasource_id": "pypi_editable_egg_pkginfo" + } + ], + "packages": [ + { + "type": "pypi", + "namespace": null, + "name": "celery", + "version": "5.2.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "Distributed Task Queue.\n.. image:: http://docs.celeryproject.org/en/latest/_images/celery-banner-small.png\n\n|build-status| |coverage| |license| |wheel| |pyversion| |pyimp| |ocbackerbadge| |ocsponsorbadge|\n\n:Version: 5.2.7 (dawn-chorus)\n:Web: https://docs.celeryproject.org/en/stable/index.html\n:Download: https://pypi.org/project/celery/\n:Source: https://github.com/celery/celery/\n:Keywords: task, queue, job, async, rabbitmq, amqp, redis,\n python, distributed, actors\n\nDonations\n=========\n\nThis project relies on your generous donations.\n\nIf you are using Celery to create a commercial product, please consider becoming our `backer`_ or our `sponsor`_ to ensure Celery's future.\n\n.. _`backer`: https://opencollective.com/celery#backer\n.. _`sponsor`: https://opencollective.com/celery#sponsor\n\nFor enterprise\n==============\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of ``celery`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. `Learn more. `_\n\nWhat's a Task Queue?\n====================\n\nTask queues are used as a mechanism to distribute work across threads or\nmachines.\n\nA task queue's input is a unit of work, called a task, dedicated worker\nprocesses then constantly monitor the queue for new work to perform.\n\nCelery communicates via messages, usually using a broker\nto mediate between clients and workers. To initiate a task a client puts a\nmessage on the queue, the broker then delivers the message to a worker.\n\nA Celery system can consist of multiple workers and brokers, giving way\nto high availability and horizontal scaling.\n\nCelery is written in Python, but the protocol can be implemented in any\nlanguage. In addition to Python there's node-celery_ for Node.js,\na `PHP client`_, `gocelery`_ for golang, and rusty-celery_ for Rust.\n\nLanguage interoperability can also be achieved by using webhooks\nin such a way that the client enqueues an URL to be requested by a worker.\n\n.. _node-celery: https://github.com/mher/node-celery\n.. _`PHP client`: https://github.com/gjedeer/celery-php\n.. _`gocelery`: https://github.com/gocelery/gocelery\n.. _rusty-celery: https://github.com/rusty-celery/rusty-celery\n\nWhat do I need?\n===============\n\nCelery version 5.2.0 runs on,\n\n- Python (3.7, 3.8, 3.9, 3.10)\n- PyPy3.7 (7.3.7+)\n\n\nThis is the version of celery which will support Python 3.7 or newer.\n\nIf you're running an older version of Python, you need to be running\nan older version of Celery:\n\n- Python 2.6: Celery series 3.1 or earlier.\n- Python 2.5: Celery series 3.0 or earlier.\n- Python 2.4: Celery series 2.2 or earlier.\n- Python 2.7: Celery 4.x series.\n- Python 3.6: Celery 5.1 or earlier.\n\nCelery is a project with minimal funding,\nso we don't support Microsoft Windows.\nPlease don't open any issues related to that platform.\n\n*Celery* is usually used with a message broker to send and receive messages.\nThe RabbitMQ, Redis transports are feature complete,\nbut there's also experimental support for a myriad of other solutions, including\nusing SQLite for local development.\n\n*Celery* can run on a single machine, on multiple machines, or even\nacross datacenters.\n\nGet Started\n===========\n\nIf this is the first time you're trying to use Celery, or you're\nnew to Celery v5.2.0 coming from previous versions then you should read our\ngetting started tutorials:\n\n- `First steps with Celery`_\n\n Tutorial teaching you the bare minimum needed to get started with Celery.\n\n- `Next steps`_\n\n A more complete overview, showing more features.\n\n.. _`First steps with Celery`:\n http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html\n\n.. _`Next steps`:\n http://docs.celeryproject.org/en/latest/getting-started/next-steps.html\n\n You can also get started with Celery by using a hosted broker transport CloudAMQP. The largest hosting provider of RabbitMQ is a proud sponsor of Celery.\n\nCelery is...\n=============\n\n- **Simple**\n\n Celery is easy to use and maintain, and does *not need configuration files*.\n\n It has an active, friendly community you can talk to for support,\n like at our `mailing-list`_, or the IRC channel.\n\n Here's one of the simplest applications you can make:\n\n .. code-block:: python\n\n from celery import Celery\n\n app = Celery('hello', broker='amqp://guest@localhost//')\n\n @app.task\n def hello():\n return 'hello world'\n\n- **Highly Available**\n\n Workers and clients will automatically retry in the event\n of connection loss or failure, and some brokers support\n HA in way of *Primary/Primary* or *Primary/Replica* replication.\n\n- **Fast**\n\n A single Celery process can process millions of tasks a minute,\n with sub-millisecond round-trip latency (using RabbitMQ,\n py-librabbitmq, and optimized settings).\n\n- **Flexible**\n\n Almost every part of *Celery* can be extended or used on its own,\n Custom pool implementations, serializers, compression schemes, logging,\n schedulers, consumers, producers, broker transports, and much more.\n\nIt supports...\n================\n\n - **Message Transports**\n\n - RabbitMQ_, Redis_, Amazon SQS\n\n - **Concurrency**\n\n - Prefork, Eventlet_, gevent_, single threaded (``solo``)\n\n - **Result Stores**\n\n - AMQP, Redis\n - memcached\n - SQLAlchemy, Django ORM\n - Apache Cassandra, IronCache, Elasticsearch\n\n - **Serialization**\n\n - *pickle*, *json*, *yaml*, *msgpack*.\n - *zlib*, *bzip2* compression.\n - Cryptographic message signing.\n\n.. _`Eventlet`: http://eventlet.net/\n.. _`gevent`: http://gevent.org/\n\n.. _RabbitMQ: https://rabbitmq.com\n.. _Redis: https://redis.io\n.. _SQLAlchemy: http://sqlalchemy.org\n\nFramework Integration\n=====================\n\nCelery is easy to integrate with web frameworks, some of which even have\nintegration packages:\n\n +--------------------+------------------------+\n | `Django`_ | not needed |\n +--------------------+------------------------+\n | `Pyramid`_ | `pyramid_celery`_ |\n +--------------------+------------------------+\n | `Pylons`_ | `celery-pylons`_ |\n +--------------------+------------------------+\n | `Flask`_ | not needed |\n +--------------------+------------------------+\n | `web2py`_ | `web2py-celery`_ |\n +--------------------+------------------------+\n | `Tornado`_ | `tornado-celery`_ |\n +--------------------+------------------------+\n\nThe integration packages aren't strictly necessary, but they can make\ndevelopment easier, and sometimes they add important hooks like closing\ndatabase connections at ``fork``.\n\n.. _`Django`: https://djangoproject.com/\n.. _`Pylons`: http://pylonsproject.org/\n.. _`Flask`: http://flask.pocoo.org/\n.. _`web2py`: http://web2py.com/\n.. _`Bottle`: https://bottlepy.org/\n.. _`Pyramid`: http://docs.pylonsproject.org/en/latest/docs/pyramid.html\n.. _`pyramid_celery`: https://pypi.org/project/pyramid_celery/\n.. _`celery-pylons`: https://pypi.org/project/celery-pylons/\n.. _`web2py-celery`: https://code.google.com/p/web2py-celery/\n.. _`Tornado`: http://www.tornadoweb.org/\n.. _`tornado-celery`: https://github.com/mher/tornado-celery/\n\n.. _celery-documentation:\n\nDocumentation\n=============\n\nThe `latest documentation`_ is hosted at Read The Docs, containing user guides,\ntutorials, and an API reference.\n\n\u6700\u65b0\u7684\u4e2d\u6587\u6587\u6863\u6258\u7ba1\u5728 https://www.celerycn.io/ \u4e2d\uff0c\u5305\u542b\u7528\u6237\u6307\u5357\u3001\u6559\u7a0b\u3001API\u63a5\u53e3\u7b49\u3002\n\n.. _`latest documentation`: http://docs.celeryproject.org/en/latest/\n\n.. _celery-installation:\n\nInstallation\n============\n\nYou can install Celery either via the Python Package Index (PyPI)\nor from source.\n\nTo install using ``pip``:\n\n::\n\n\n $ pip install -U Celery\n\n.. _bundles:\n\nBundles\n-------\n\nCelery also defines a group of bundles that can be used\nto install Celery and the dependencies for a given feature.\n\nYou can specify these in your requirements or on the ``pip``\ncommand-line by using brackets. Multiple bundles can be specified by\nseparating them by commas.\n\n::\n\n\n $ pip install \"celery[amqp]\"\n\n $ pip install \"celery[amqp,redis,auth,msgpack]\"\n\nThe following bundles are available:\n\nSerializers\n~~~~~~~~~~~\n\n:``celery[auth]``:\n for using the ``auth`` security serializer.\n\n:``celery[msgpack]``:\n for using the msgpack serializer.\n\n:``celery[yaml]``:\n for using the yaml serializer.\n\nConcurrency\n~~~~~~~~~~~\n\n:``celery[eventlet]``:\n for using the ``eventlet`` pool.\n\n:``celery[gevent]``:\n for using the ``gevent`` pool.\n\nTransports and Backends\n~~~~~~~~~~~~~~~~~~~~~~~\n\n:``celery[amqp]``:\n for using the RabbitMQ amqp python library.\n\n:``celery[redis]``:\n for using Redis as a message transport or as a result backend.\n\n:``celery[sqs]``:\n for using Amazon SQS as a message transport.\n\n:``celery[tblib``]:\n for using the ``task_remote_tracebacks`` feature.\n\n:``celery[memcache]``:\n for using Memcached as a result backend (using ``pylibmc``)\n\n:``celery[pymemcache]``:\n for using Memcached as a result backend (pure-Python implementation).\n\n:``celery[cassandra]``:\n for using Apache Cassandra as a result backend with DataStax driver.\n\n:``celery[azureblockblob]``:\n for using Azure Storage as a result backend (using ``azure-storage``)\n\n:``celery[s3]``:\n for using S3 Storage as a result backend.\n\n:``celery[couchbase]``:\n for using Couchbase as a result backend.\n\n:``celery[arangodb]``:\n for using ArangoDB as a result backend.\n\n:``celery[elasticsearch]``:\n for using Elasticsearch as a result backend.\n\n:``celery[riak]``:\n for using Riak as a result backend.\n\n:``celery[cosmosdbsql]``:\n for using Azure Cosmos DB as a result backend (using ``pydocumentdb``)\n\n:``celery[zookeeper]``:\n for using Zookeeper as a message transport.\n\n:``celery[sqlalchemy]``:\n for using SQLAlchemy as a result backend (*supported*).\n\n:``celery[pyro]``:\n for using the Pyro4 message transport (*experimental*).\n\n:``celery[slmq]``:\n for using the SoftLayer Message Queue transport (*experimental*).\n\n:``celery[consul]``:\n for using the Consul.io Key/Value store as a message transport or result backend (*experimental*).\n\n:``celery[django]``:\n specifies the lowest version possible for Django support.\n\n You should probably not use this in your requirements, it's here\n for informational purposes only.\n\n\n.. _celery-installing-from-source:\n\nDownloading and installing from source\n--------------------------------------\n\nDownload the latest version of Celery from PyPI:\n\nhttps://pypi.org/project/celery/\n\nYou can install it by doing the following,:\n\n::\n\n\n $ tar xvfz celery-0.0.0.tar.gz\n $ cd celery-0.0.0\n $ python setup.py build\n # python setup.py install\n\nThe last command must be executed as a privileged user if\nyou aren't currently using a virtualenv.\n\n.. _celery-installing-from-git:\n\nUsing the development version\n-----------------------------\n\nWith pip\n~~~~~~~~\n\nThe Celery development version also requires the development\nversions of ``kombu``, ``amqp``, ``billiard``, and ``vine``.\n\nYou can install the latest snapshot of these using the following\npip commands:\n\n::\n\n\n $ pip install https://github.com/celery/celery/zipball/master#egg=celery\n $ pip install https://github.com/celery/billiard/zipball/master#egg=billiard\n $ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp\n $ pip install https://github.com/celery/kombu/zipball/master#egg=kombu\n $ pip install https://github.com/celery/vine/zipball/master#egg=vine\n\nWith git\n~~~~~~~~\n\nPlease see the Contributing section.\n\n.. _getting-help:\n\nGetting Help\n============\n\n.. _mailing-list:\n\nMailing list\n------------\n\nFor discussions about the usage, development, and future of Celery,\nplease join the `celery-users`_ mailing list.\n\n.. _`celery-users`: https://groups.google.com/group/celery-users/\n\n.. _irc-channel:\n\nIRC\n---\n\nCome chat with us on IRC. The **#celery** channel is located at the\n`Libera Chat`_ network.\n\n.. _`Libera Chat`: https://libera.chat/\n\n.. _bug-tracker:\n\nBug tracker\n===========\n\nIf you have any suggestions, bug reports, or annoyances please report them\nto our issue tracker at https://github.com/celery/celery/issues/\n\n.. _wiki:\n\nWiki\n====\n\nhttps://github.com/celery/celery/wiki\n\nCredits\n=======\n\n.. _contributing-short:\n\nContributors\n------------\n\nThis project exists thanks to all the people who contribute. Development of\n`celery` happens at GitHub: https://github.com/celery/celery\n\nYou're highly encouraged to participate in the development\nof `celery`. If you don't like GitHub (for some reason) you're welcome\nto send regular patches.\n\nBe sure to also read the `Contributing to Celery`_ section in the\ndocumentation.\n\n.. _`Contributing to Celery`:\n http://docs.celeryproject.org/en/master/contributing.html\n\n|oc-contributors|\n\n.. |oc-contributors| image:: https://opencollective.com/celery/contributors.svg?width=890&button=false\n :target: https://github.com/celery/celery/graphs/contributors\n\nBackers\n-------\n\nThank you to all our backers! \ud83d\ude4f [`Become a backer`_]\n\n.. _`Become a backer`: https://opencollective.com/celery#backer\n\n|oc-backers|\n\n.. |oc-backers| image:: https://opencollective.com/celery/backers.svg?width=890\n :target: https://opencollective.com/celery#backers\n\nSponsors\n--------\n\nSupport this project by becoming a sponsor. Your logo will show up here with a\nlink to your website. [`Become a sponsor`_]\n\n.. _`Become a sponsor`: https://opencollective.com/celery#sponsor\n\n|oc-sponsors|\n\n.. |oc-sponsors| image:: https://opencollective.com/celery/sponsor/0/avatar.svg\n :target: https://opencollective.com/celery/sponsor/0/website\n\n.. _license:\n\nLicense\n=======\n\nThis software is licensed under the `New BSD License`. See the ``LICENSE``\nfile in the top distribution directory for the full license text.\n\n.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround\n\n.. |build-status| image:: https://github.com/celery/celery/actions/workflows/python-package.yml/badge.svg\n :alt: Build status\n :target: https://github.com/celery/celery/actions/workflows/python-package.yml\n\n.. |coverage| image:: https://codecov.io/github/celery/celery/coverage.svg?branch=master\n :target: https://codecov.io/github/celery/celery?branch=master\n\n.. |license| image:: https://img.shields.io/pypi/l/celery.svg\n :alt: BSD License\n :target: https://opensource.org/licenses/BSD-3-Clause\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/celery.svg\n :alt: Celery can be installed via wheel\n :target: https://pypi.org/project/celery/\n\n.. |pyversion| image:: https://img.shields.io/pypi/pyversions/celery.svg\n :alt: Supported Python versions.\n :target: https://pypi.org/project/celery/\n\n.. |pyimp| image:: https://img.shields.io/pypi/implementation/celery.svg\n :alt: Supported Python implementations.\n :target: https://pypi.org/project/celery/\n\n.. |ocbackerbadge| image:: https://opencollective.com/celery/backers/badge.svg\n :alt: Backers on Open Collective\n :target: #backers\n\n.. |ocsponsorbadge| image:: https://opencollective.com/celery/sponsors/badge.svg\n :alt: Sponsors on Open Collective\n :target: #sponsors\n\n.. |downloads| image:: https://pepy.tech/badge/celery\n :alt: Downloads\n :target: https://pepy.tech/project/celery", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Ask Solem", + "email": "auvipy@gmail.com", + "url": null + } + ], + "keywords": [ + "task job queue distributed messaging actor", + "Development Status :: 5 - Production/Stable", + "Topic :: System :: Distributed Computing", + "Topic :: Software Development :: Object Brokering", + "Framework :: Celery", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Operating System :: OS Independent" + ], + "homepage_url": "http://celeryproject.org", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": "https://github.com/celery/celery/issues", + "code_view_url": "https://github.com/celery/celery", + "vcs_url": null, + "copyright": null, + "license_expression": "bsd-new AND bsd-new", + "declared_license": { + "license": "BSD", + "classifiers": [ + "License :: OSI Approved :: BSD License" + ] + }, + "notice_text": null, + "source_packages": [], + "extra_data": { + "Documentation": "https://docs.celeryproject.org/en/latest/index.html", + "Changelog": "https://docs.celeryproject.org/en/stable/changelog.html", + "Funding": "https://opencollective.com/celery" + }, + "repository_homepage_url": "https://pypi.org/project/celery", + "repository_download_url": "https://pypi.org/packages/source/c/celery/celery-5.2.7.tar.gz", + "api_data_url": "https://pypi.org/pypi/celery/5.2.7/json", + "package_uid": "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "celery/celery.egg-info/PKG-INFO" + ], + "datasource_ids": [ + "pypi_editable_egg_pkginfo" + ], + "purl": "pkg:pypi/celery@5.2.7" + } + ], + "files": [ + { + "path": "celery", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "celery/PKG-INFO", + "type": "file", + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "celery", + "version": "5.2.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "Distributed Task Queue.\n.. image:: http://docs.celeryproject.org/en/latest/_images/celery-banner-small.png\n\n|build-status| |coverage| |license| |wheel| |pyversion| |pyimp| |ocbackerbadge| |ocsponsorbadge|\n\n:Version: 5.2.7 (dawn-chorus)\n:Web: https://docs.celeryproject.org/en/stable/index.html\n:Download: https://pypi.org/project/celery/\n:Source: https://github.com/celery/celery/\n:Keywords: task, queue, job, async, rabbitmq, amqp, redis,\n python, distributed, actors\n\nDonations\n=========\n\nThis project relies on your generous donations.\n\nIf you are using Celery to create a commercial product, please consider becoming our `backer`_ or our `sponsor`_ to ensure Celery's future.\n\n.. _`backer`: https://opencollective.com/celery#backer\n.. _`sponsor`: https://opencollective.com/celery#sponsor\n\nFor enterprise\n==============\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of ``celery`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. `Learn more. `_\n\nWhat's a Task Queue?\n====================\n\nTask queues are used as a mechanism to distribute work across threads or\nmachines.\n\nA task queue's input is a unit of work, called a task, dedicated worker\nprocesses then constantly monitor the queue for new work to perform.\n\nCelery communicates via messages, usually using a broker\nto mediate between clients and workers. To initiate a task a client puts a\nmessage on the queue, the broker then delivers the message to a worker.\n\nA Celery system can consist of multiple workers and brokers, giving way\nto high availability and horizontal scaling.\n\nCelery is written in Python, but the protocol can be implemented in any\nlanguage. In addition to Python there's node-celery_ for Node.js,\na `PHP client`_, `gocelery`_ for golang, and rusty-celery_ for Rust.\n\nLanguage interoperability can also be achieved by using webhooks\nin such a way that the client enqueues an URL to be requested by a worker.\n\n.. _node-celery: https://github.com/mher/node-celery\n.. _`PHP client`: https://github.com/gjedeer/celery-php\n.. _`gocelery`: https://github.com/gocelery/gocelery\n.. _rusty-celery: https://github.com/rusty-celery/rusty-celery\n\nWhat do I need?\n===============\n\nCelery version 5.2.0 runs on,\n\n- Python (3.7, 3.8, 3.9, 3.10)\n- PyPy3.7 (7.3.7+)\n\n\nThis is the version of celery which will support Python 3.7 or newer.\n\nIf you're running an older version of Python, you need to be running\nan older version of Celery:\n\n- Python 2.6: Celery series 3.1 or earlier.\n- Python 2.5: Celery series 3.0 or earlier.\n- Python 2.4: Celery series 2.2 or earlier.\n- Python 2.7: Celery 4.x series.\n- Python 3.6: Celery 5.1 or earlier.\n\nCelery is a project with minimal funding,\nso we don't support Microsoft Windows.\nPlease don't open any issues related to that platform.\n\n*Celery* is usually used with a message broker to send and receive messages.\nThe RabbitMQ, Redis transports are feature complete,\nbut there's also experimental support for a myriad of other solutions, including\nusing SQLite for local development.\n\n*Celery* can run on a single machine, on multiple machines, or even\nacross datacenters.\n\nGet Started\n===========\n\nIf this is the first time you're trying to use Celery, or you're\nnew to Celery v5.2.0 coming from previous versions then you should read our\ngetting started tutorials:\n\n- `First steps with Celery`_\n\n Tutorial teaching you the bare minimum needed to get started with Celery.\n\n- `Next steps`_\n\n A more complete overview, showing more features.\n\n.. _`First steps with Celery`:\n http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html\n\n.. _`Next steps`:\n http://docs.celeryproject.org/en/latest/getting-started/next-steps.html\n\n You can also get started with Celery by using a hosted broker transport CloudAMQP. The largest hosting provider of RabbitMQ is a proud sponsor of Celery.\n\nCelery is...\n=============\n\n- **Simple**\n\n Celery is easy to use and maintain, and does *not need configuration files*.\n\n It has an active, friendly community you can talk to for support,\n like at our `mailing-list`_, or the IRC channel.\n\n Here's one of the simplest applications you can make:\n\n .. code-block:: python\n\n from celery import Celery\n\n app = Celery('hello', broker='amqp://guest@localhost//')\n\n @app.task\n def hello():\n return 'hello world'\n\n- **Highly Available**\n\n Workers and clients will automatically retry in the event\n of connection loss or failure, and some brokers support\n HA in way of *Primary/Primary* or *Primary/Replica* replication.\n\n- **Fast**\n\n A single Celery process can process millions of tasks a minute,\n with sub-millisecond round-trip latency (using RabbitMQ,\n py-librabbitmq, and optimized settings).\n\n- **Flexible**\n\n Almost every part of *Celery* can be extended or used on its own,\n Custom pool implementations, serializers, compression schemes, logging,\n schedulers, consumers, producers, broker transports, and much more.\n\nIt supports...\n================\n\n - **Message Transports**\n\n - RabbitMQ_, Redis_, Amazon SQS\n\n - **Concurrency**\n\n - Prefork, Eventlet_, gevent_, single threaded (``solo``)\n\n - **Result Stores**\n\n - AMQP, Redis\n - memcached\n - SQLAlchemy, Django ORM\n - Apache Cassandra, IronCache, Elasticsearch\n\n - **Serialization**\n\n - *pickle*, *json*, *yaml*, *msgpack*.\n - *zlib*, *bzip2* compression.\n - Cryptographic message signing.\n\n.. _`Eventlet`: http://eventlet.net/\n.. _`gevent`: http://gevent.org/\n\n.. _RabbitMQ: https://rabbitmq.com\n.. _Redis: https://redis.io\n.. _SQLAlchemy: http://sqlalchemy.org\n\nFramework Integration\n=====================\n\nCelery is easy to integrate with web frameworks, some of which even have\nintegration packages:\n\n +--------------------+------------------------+\n | `Django`_ | not needed |\n +--------------------+------------------------+\n | `Pyramid`_ | `pyramid_celery`_ |\n +--------------------+------------------------+\n | `Pylons`_ | `celery-pylons`_ |\n +--------------------+------------------------+\n | `Flask`_ | not needed |\n +--------------------+------------------------+\n | `web2py`_ | `web2py-celery`_ |\n +--------------------+------------------------+\n | `Tornado`_ | `tornado-celery`_ |\n +--------------------+------------------------+\n\nThe integration packages aren't strictly necessary, but they can make\ndevelopment easier, and sometimes they add important hooks like closing\ndatabase connections at ``fork``.\n\n.. _`Django`: https://djangoproject.com/\n.. _`Pylons`: http://pylonsproject.org/\n.. _`Flask`: http://flask.pocoo.org/\n.. _`web2py`: http://web2py.com/\n.. _`Bottle`: https://bottlepy.org/\n.. _`Pyramid`: http://docs.pylonsproject.org/en/latest/docs/pyramid.html\n.. _`pyramid_celery`: https://pypi.org/project/pyramid_celery/\n.. _`celery-pylons`: https://pypi.org/project/celery-pylons/\n.. _`web2py-celery`: https://code.google.com/p/web2py-celery/\n.. _`Tornado`: http://www.tornadoweb.org/\n.. _`tornado-celery`: https://github.com/mher/tornado-celery/\n\n.. _celery-documentation:\n\nDocumentation\n=============\n\nThe `latest documentation`_ is hosted at Read The Docs, containing user guides,\ntutorials, and an API reference.\n\n\u6700\u65b0\u7684\u4e2d\u6587\u6587\u6863\u6258\u7ba1\u5728 https://www.celerycn.io/ \u4e2d\uff0c\u5305\u542b\u7528\u6237\u6307\u5357\u3001\u6559\u7a0b\u3001API\u63a5\u53e3\u7b49\u3002\n\n.. _`latest documentation`: http://docs.celeryproject.org/en/latest/\n\n.. _celery-installation:\n\nInstallation\n============\n\nYou can install Celery either via the Python Package Index (PyPI)\nor from source.\n\nTo install using ``pip``:\n\n::\n\n\n $ pip install -U Celery\n\n.. _bundles:\n\nBundles\n-------\n\nCelery also defines a group of bundles that can be used\nto install Celery and the dependencies for a given feature.\n\nYou can specify these in your requirements or on the ``pip``\ncommand-line by using brackets. Multiple bundles can be specified by\nseparating them by commas.\n\n::\n\n\n $ pip install \"celery[amqp]\"\n\n $ pip install \"celery[amqp,redis,auth,msgpack]\"\n\nThe following bundles are available:\n\nSerializers\n~~~~~~~~~~~\n\n:``celery[auth]``:\n for using the ``auth`` security serializer.\n\n:``celery[msgpack]``:\n for using the msgpack serializer.\n\n:``celery[yaml]``:\n for using the yaml serializer.\n\nConcurrency\n~~~~~~~~~~~\n\n:``celery[eventlet]``:\n for using the ``eventlet`` pool.\n\n:``celery[gevent]``:\n for using the ``gevent`` pool.\n\nTransports and Backends\n~~~~~~~~~~~~~~~~~~~~~~~\n\n:``celery[amqp]``:\n for using the RabbitMQ amqp python library.\n\n:``celery[redis]``:\n for using Redis as a message transport or as a result backend.\n\n:``celery[sqs]``:\n for using Amazon SQS as a message transport.\n\n:``celery[tblib``]:\n for using the ``task_remote_tracebacks`` feature.\n\n:``celery[memcache]``:\n for using Memcached as a result backend (using ``pylibmc``)\n\n:``celery[pymemcache]``:\n for using Memcached as a result backend (pure-Python implementation).\n\n:``celery[cassandra]``:\n for using Apache Cassandra as a result backend with DataStax driver.\n\n:``celery[azureblockblob]``:\n for using Azure Storage as a result backend (using ``azure-storage``)\n\n:``celery[s3]``:\n for using S3 Storage as a result backend.\n\n:``celery[couchbase]``:\n for using Couchbase as a result backend.\n\n:``celery[arangodb]``:\n for using ArangoDB as a result backend.\n\n:``celery[elasticsearch]``:\n for using Elasticsearch as a result backend.\n\n:``celery[riak]``:\n for using Riak as a result backend.\n\n:``celery[cosmosdbsql]``:\n for using Azure Cosmos DB as a result backend (using ``pydocumentdb``)\n\n:``celery[zookeeper]``:\n for using Zookeeper as a message transport.\n\n:``celery[sqlalchemy]``:\n for using SQLAlchemy as a result backend (*supported*).\n\n:``celery[pyro]``:\n for using the Pyro4 message transport (*experimental*).\n\n:``celery[slmq]``:\n for using the SoftLayer Message Queue transport (*experimental*).\n\n:``celery[consul]``:\n for using the Consul.io Key/Value store as a message transport or result backend (*experimental*).\n\n:``celery[django]``:\n specifies the lowest version possible for Django support.\n\n You should probably not use this in your requirements, it's here\n for informational purposes only.\n\n\n.. _celery-installing-from-source:\n\nDownloading and installing from source\n--------------------------------------\n\nDownload the latest version of Celery from PyPI:\n\nhttps://pypi.org/project/celery/\n\nYou can install it by doing the following,:\n\n::\n\n\n $ tar xvfz celery-0.0.0.tar.gz\n $ cd celery-0.0.0\n $ python setup.py build\n # python setup.py install\n\nThe last command must be executed as a privileged user if\nyou aren't currently using a virtualenv.\n\n.. _celery-installing-from-git:\n\nUsing the development version\n-----------------------------\n\nWith pip\n~~~~~~~~\n\nThe Celery development version also requires the development\nversions of ``kombu``, ``amqp``, ``billiard``, and ``vine``.\n\nYou can install the latest snapshot of these using the following\npip commands:\n\n::\n\n\n $ pip install https://github.com/celery/celery/zipball/master#egg=celery\n $ pip install https://github.com/celery/billiard/zipball/master#egg=billiard\n $ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp\n $ pip install https://github.com/celery/kombu/zipball/master#egg=kombu\n $ pip install https://github.com/celery/vine/zipball/master#egg=vine\n\nWith git\n~~~~~~~~\n\nPlease see the Contributing section.\n\n.. _getting-help:\n\nGetting Help\n============\n\n.. _mailing-list:\n\nMailing list\n------------\n\nFor discussions about the usage, development, and future of Celery,\nplease join the `celery-users`_ mailing list.\n\n.. _`celery-users`: https://groups.google.com/group/celery-users/\n\n.. _irc-channel:\n\nIRC\n---\n\nCome chat with us on IRC. The **#celery** channel is located at the\n`Libera Chat`_ network.\n\n.. _`Libera Chat`: https://libera.chat/\n\n.. _bug-tracker:\n\nBug tracker\n===========\n\nIf you have any suggestions, bug reports, or annoyances please report them\nto our issue tracker at https://github.com/celery/celery/issues/\n\n.. _wiki:\n\nWiki\n====\n\nhttps://github.com/celery/celery/wiki\n\nCredits\n=======\n\n.. _contributing-short:\n\nContributors\n------------\n\nThis project exists thanks to all the people who contribute. Development of\n`celery` happens at GitHub: https://github.com/celery/celery\n\nYou're highly encouraged to participate in the development\nof `celery`. If you don't like GitHub (for some reason) you're welcome\nto send regular patches.\n\nBe sure to also read the `Contributing to Celery`_ section in the\ndocumentation.\n\n.. _`Contributing to Celery`:\n http://docs.celeryproject.org/en/master/contributing.html\n\n|oc-contributors|\n\n.. |oc-contributors| image:: https://opencollective.com/celery/contributors.svg?width=890&button=false\n :target: https://github.com/celery/celery/graphs/contributors\n\nBackers\n-------\n\nThank you to all our backers! \ud83d\ude4f [`Become a backer`_]\n\n.. _`Become a backer`: https://opencollective.com/celery#backer\n\n|oc-backers|\n\n.. |oc-backers| image:: https://opencollective.com/celery/backers.svg?width=890\n :target: https://opencollective.com/celery#backers\n\nSponsors\n--------\n\nSupport this project by becoming a sponsor. Your logo will show up here with a\nlink to your website. [`Become a sponsor`_]\n\n.. _`Become a sponsor`: https://opencollective.com/celery#sponsor\n\n|oc-sponsors|\n\n.. |oc-sponsors| image:: https://opencollective.com/celery/sponsor/0/avatar.svg\n :target: https://opencollective.com/celery/sponsor/0/website\n\n.. _license:\n\nLicense\n=======\n\nThis software is licensed under the `New BSD License`. See the ``LICENSE``\nfile in the top distribution directory for the full license text.\n\n.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround\n\n.. |build-status| image:: https://github.com/celery/celery/actions/workflows/python-package.yml/badge.svg\n :alt: Build status\n :target: https://github.com/celery/celery/actions/workflows/python-package.yml\n\n.. |coverage| image:: https://codecov.io/github/celery/celery/coverage.svg?branch=master\n :target: https://codecov.io/github/celery/celery?branch=master\n\n.. |license| image:: https://img.shields.io/pypi/l/celery.svg\n :alt: BSD License\n :target: https://opensource.org/licenses/BSD-3-Clause\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/celery.svg\n :alt: Celery can be installed via wheel\n :target: https://pypi.org/project/celery/\n\n.. |pyversion| image:: https://img.shields.io/pypi/pyversions/celery.svg\n :alt: Supported Python versions.\n :target: https://pypi.org/project/celery/\n\n.. |pyimp| image:: https://img.shields.io/pypi/implementation/celery.svg\n :alt: Supported Python implementations.\n :target: https://pypi.org/project/celery/\n\n.. |ocbackerbadge| image:: https://opencollective.com/celery/backers/badge.svg\n :alt: Backers on Open Collective\n :target: #backers\n\n.. |ocsponsorbadge| image:: https://opencollective.com/celery/sponsors/badge.svg\n :alt: Sponsors on Open Collective\n :target: #sponsors\n\n.. |downloads| image:: https://pepy.tech/badge/celery\n :alt: Downloads\n :target: https://pepy.tech/project/celery", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Ask Solem", + "email": "auvipy@gmail.com", + "url": null + } + ], + "keywords": [ + "task job queue distributed messaging actor", + "Development Status :: 5 - Production/Stable", + "Topic :: System :: Distributed Computing", + "Topic :: Software Development :: Object Brokering", + "Framework :: Celery", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Operating System :: OS Independent" + ], + "homepage_url": "http://celeryproject.org", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": "https://github.com/celery/celery/issues", + "code_view_url": "https://github.com/celery/celery", + "vcs_url": null, + "copyright": null, + "license_expression": "bsd-new AND bsd-new", + "declared_license": { + "license": "BSD", + "classifiers": [ + "License :: OSI Approved :: BSD License" + ] + }, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "Documentation": "https://docs.celeryproject.org/en/latest/index.html", + "Changelog": "https://docs.celeryproject.org/en/stable/changelog.html", + "Funding": "https://opencollective.com/celery" + }, + "dependencies": [], + "repository_homepage_url": "https://pypi.org/project/celery", + "repository_download_url": "https://pypi.org/packages/source/c/celery/celery-5.2.7.tar.gz", + "api_data_url": "https://pypi.org/pypi/celery/5.2.7/json", + "datasource_id": "pypi_sdist_pkginfo", + "purl": "pkg:pypi/celery@5.2.7" + } + ], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/PKG-INFO", + "type": "file", + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "celery", + "version": "5.2.7", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "Distributed Task Queue.\n.. image:: http://docs.celeryproject.org/en/latest/_images/celery-banner-small.png\n\n|build-status| |coverage| |license| |wheel| |pyversion| |pyimp| |ocbackerbadge| |ocsponsorbadge|\n\n:Version: 5.2.7 (dawn-chorus)\n:Web: https://docs.celeryproject.org/en/stable/index.html\n:Download: https://pypi.org/project/celery/\n:Source: https://github.com/celery/celery/\n:Keywords: task, queue, job, async, rabbitmq, amqp, redis,\n python, distributed, actors\n\nDonations\n=========\n\nThis project relies on your generous donations.\n\nIf you are using Celery to create a commercial product, please consider becoming our `backer`_ or our `sponsor`_ to ensure Celery's future.\n\n.. _`backer`: https://opencollective.com/celery#backer\n.. _`sponsor`: https://opencollective.com/celery#sponsor\n\nFor enterprise\n==============\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of ``celery`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. `Learn more. `_\n\nWhat's a Task Queue?\n====================\n\nTask queues are used as a mechanism to distribute work across threads or\nmachines.\n\nA task queue's input is a unit of work, called a task, dedicated worker\nprocesses then constantly monitor the queue for new work to perform.\n\nCelery communicates via messages, usually using a broker\nto mediate between clients and workers. To initiate a task a client puts a\nmessage on the queue, the broker then delivers the message to a worker.\n\nA Celery system can consist of multiple workers and brokers, giving way\nto high availability and horizontal scaling.\n\nCelery is written in Python, but the protocol can be implemented in any\nlanguage. In addition to Python there's node-celery_ for Node.js,\na `PHP client`_, `gocelery`_ for golang, and rusty-celery_ for Rust.\n\nLanguage interoperability can also be achieved by using webhooks\nin such a way that the client enqueues an URL to be requested by a worker.\n\n.. _node-celery: https://github.com/mher/node-celery\n.. _`PHP client`: https://github.com/gjedeer/celery-php\n.. _`gocelery`: https://github.com/gocelery/gocelery\n.. _rusty-celery: https://github.com/rusty-celery/rusty-celery\n\nWhat do I need?\n===============\n\nCelery version 5.2.0 runs on,\n\n- Python (3.7, 3.8, 3.9, 3.10)\n- PyPy3.7 (7.3.7+)\n\n\nThis is the version of celery which will support Python 3.7 or newer.\n\nIf you're running an older version of Python, you need to be running\nan older version of Celery:\n\n- Python 2.6: Celery series 3.1 or earlier.\n- Python 2.5: Celery series 3.0 or earlier.\n- Python 2.4: Celery series 2.2 or earlier.\n- Python 2.7: Celery 4.x series.\n- Python 3.6: Celery 5.1 or earlier.\n\nCelery is a project with minimal funding,\nso we don't support Microsoft Windows.\nPlease don't open any issues related to that platform.\n\n*Celery* is usually used with a message broker to send and receive messages.\nThe RabbitMQ, Redis transports are feature complete,\nbut there's also experimental support for a myriad of other solutions, including\nusing SQLite for local development.\n\n*Celery* can run on a single machine, on multiple machines, or even\nacross datacenters.\n\nGet Started\n===========\n\nIf this is the first time you're trying to use Celery, or you're\nnew to Celery v5.2.0 coming from previous versions then you should read our\ngetting started tutorials:\n\n- `First steps with Celery`_\n\n Tutorial teaching you the bare minimum needed to get started with Celery.\n\n- `Next steps`_\n\n A more complete overview, showing more features.\n\n.. _`First steps with Celery`:\n http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html\n\n.. _`Next steps`:\n http://docs.celeryproject.org/en/latest/getting-started/next-steps.html\n\n You can also get started with Celery by using a hosted broker transport CloudAMQP. The largest hosting provider of RabbitMQ is a proud sponsor of Celery.\n\nCelery is...\n=============\n\n- **Simple**\n\n Celery is easy to use and maintain, and does *not need configuration files*.\n\n It has an active, friendly community you can talk to for support,\n like at our `mailing-list`_, or the IRC channel.\n\n Here's one of the simplest applications you can make:\n\n .. code-block:: python\n\n from celery import Celery\n\n app = Celery('hello', broker='amqp://guest@localhost//')\n\n @app.task\n def hello():\n return 'hello world'\n\n- **Highly Available**\n\n Workers and clients will automatically retry in the event\n of connection loss or failure, and some brokers support\n HA in way of *Primary/Primary* or *Primary/Replica* replication.\n\n- **Fast**\n\n A single Celery process can process millions of tasks a minute,\n with sub-millisecond round-trip latency (using RabbitMQ,\n py-librabbitmq, and optimized settings).\n\n- **Flexible**\n\n Almost every part of *Celery* can be extended or used on its own,\n Custom pool implementations, serializers, compression schemes, logging,\n schedulers, consumers, producers, broker transports, and much more.\n\nIt supports...\n================\n\n - **Message Transports**\n\n - RabbitMQ_, Redis_, Amazon SQS\n\n - **Concurrency**\n\n - Prefork, Eventlet_, gevent_, single threaded (``solo``)\n\n - **Result Stores**\n\n - AMQP, Redis\n - memcached\n - SQLAlchemy, Django ORM\n - Apache Cassandra, IronCache, Elasticsearch\n\n - **Serialization**\n\n - *pickle*, *json*, *yaml*, *msgpack*.\n - *zlib*, *bzip2* compression.\n - Cryptographic message signing.\n\n.. _`Eventlet`: http://eventlet.net/\n.. _`gevent`: http://gevent.org/\n\n.. _RabbitMQ: https://rabbitmq.com\n.. _Redis: https://redis.io\n.. _SQLAlchemy: http://sqlalchemy.org\n\nFramework Integration\n=====================\n\nCelery is easy to integrate with web frameworks, some of which even have\nintegration packages:\n\n +--------------------+------------------------+\n | `Django`_ | not needed |\n +--------------------+------------------------+\n | `Pyramid`_ | `pyramid_celery`_ |\n +--------------------+------------------------+\n | `Pylons`_ | `celery-pylons`_ |\n +--------------------+------------------------+\n | `Flask`_ | not needed |\n +--------------------+------------------------+\n | `web2py`_ | `web2py-celery`_ |\n +--------------------+------------------------+\n | `Tornado`_ | `tornado-celery`_ |\n +--------------------+------------------------+\n\nThe integration packages aren't strictly necessary, but they can make\ndevelopment easier, and sometimes they add important hooks like closing\ndatabase connections at ``fork``.\n\n.. _`Django`: https://djangoproject.com/\n.. _`Pylons`: http://pylonsproject.org/\n.. _`Flask`: http://flask.pocoo.org/\n.. _`web2py`: http://web2py.com/\n.. _`Bottle`: https://bottlepy.org/\n.. _`Pyramid`: http://docs.pylonsproject.org/en/latest/docs/pyramid.html\n.. _`pyramid_celery`: https://pypi.org/project/pyramid_celery/\n.. _`celery-pylons`: https://pypi.org/project/celery-pylons/\n.. _`web2py-celery`: https://code.google.com/p/web2py-celery/\n.. _`Tornado`: http://www.tornadoweb.org/\n.. _`tornado-celery`: https://github.com/mher/tornado-celery/\n\n.. _celery-documentation:\n\nDocumentation\n=============\n\nThe `latest documentation`_ is hosted at Read The Docs, containing user guides,\ntutorials, and an API reference.\n\n\u6700\u65b0\u7684\u4e2d\u6587\u6587\u6863\u6258\u7ba1\u5728 https://www.celerycn.io/ \u4e2d\uff0c\u5305\u542b\u7528\u6237\u6307\u5357\u3001\u6559\u7a0b\u3001API\u63a5\u53e3\u7b49\u3002\n\n.. _`latest documentation`: http://docs.celeryproject.org/en/latest/\n\n.. _celery-installation:\n\nInstallation\n============\n\nYou can install Celery either via the Python Package Index (PyPI)\nor from source.\n\nTo install using ``pip``:\n\n::\n\n\n $ pip install -U Celery\n\n.. _bundles:\n\nBundles\n-------\n\nCelery also defines a group of bundles that can be used\nto install Celery and the dependencies for a given feature.\n\nYou can specify these in your requirements or on the ``pip``\ncommand-line by using brackets. Multiple bundles can be specified by\nseparating them by commas.\n\n::\n\n\n $ pip install \"celery[amqp]\"\n\n $ pip install \"celery[amqp,redis,auth,msgpack]\"\n\nThe following bundles are available:\n\nSerializers\n~~~~~~~~~~~\n\n:``celery[auth]``:\n for using the ``auth`` security serializer.\n\n:``celery[msgpack]``:\n for using the msgpack serializer.\n\n:``celery[yaml]``:\n for using the yaml serializer.\n\nConcurrency\n~~~~~~~~~~~\n\n:``celery[eventlet]``:\n for using the ``eventlet`` pool.\n\n:``celery[gevent]``:\n for using the ``gevent`` pool.\n\nTransports and Backends\n~~~~~~~~~~~~~~~~~~~~~~~\n\n:``celery[amqp]``:\n for using the RabbitMQ amqp python library.\n\n:``celery[redis]``:\n for using Redis as a message transport or as a result backend.\n\n:``celery[sqs]``:\n for using Amazon SQS as a message transport.\n\n:``celery[tblib``]:\n for using the ``task_remote_tracebacks`` feature.\n\n:``celery[memcache]``:\n for using Memcached as a result backend (using ``pylibmc``)\n\n:``celery[pymemcache]``:\n for using Memcached as a result backend (pure-Python implementation).\n\n:``celery[cassandra]``:\n for using Apache Cassandra as a result backend with DataStax driver.\n\n:``celery[azureblockblob]``:\n for using Azure Storage as a result backend (using ``azure-storage``)\n\n:``celery[s3]``:\n for using S3 Storage as a result backend.\n\n:``celery[couchbase]``:\n for using Couchbase as a result backend.\n\n:``celery[arangodb]``:\n for using ArangoDB as a result backend.\n\n:``celery[elasticsearch]``:\n for using Elasticsearch as a result backend.\n\n:``celery[riak]``:\n for using Riak as a result backend.\n\n:``celery[cosmosdbsql]``:\n for using Azure Cosmos DB as a result backend (using ``pydocumentdb``)\n\n:``celery[zookeeper]``:\n for using Zookeeper as a message transport.\n\n:``celery[sqlalchemy]``:\n for using SQLAlchemy as a result backend (*supported*).\n\n:``celery[pyro]``:\n for using the Pyro4 message transport (*experimental*).\n\n:``celery[slmq]``:\n for using the SoftLayer Message Queue transport (*experimental*).\n\n:``celery[consul]``:\n for using the Consul.io Key/Value store as a message transport or result backend (*experimental*).\n\n:``celery[django]``:\n specifies the lowest version possible for Django support.\n\n You should probably not use this in your requirements, it's here\n for informational purposes only.\n\n\n.. _celery-installing-from-source:\n\nDownloading and installing from source\n--------------------------------------\n\nDownload the latest version of Celery from PyPI:\n\nhttps://pypi.org/project/celery/\n\nYou can install it by doing the following,:\n\n::\n\n\n $ tar xvfz celery-0.0.0.tar.gz\n $ cd celery-0.0.0\n $ python setup.py build\n # python setup.py install\n\nThe last command must be executed as a privileged user if\nyou aren't currently using a virtualenv.\n\n.. _celery-installing-from-git:\n\nUsing the development version\n-----------------------------\n\nWith pip\n~~~~~~~~\n\nThe Celery development version also requires the development\nversions of ``kombu``, ``amqp``, ``billiard``, and ``vine``.\n\nYou can install the latest snapshot of these using the following\npip commands:\n\n::\n\n\n $ pip install https://github.com/celery/celery/zipball/master#egg=celery\n $ pip install https://github.com/celery/billiard/zipball/master#egg=billiard\n $ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp\n $ pip install https://github.com/celery/kombu/zipball/master#egg=kombu\n $ pip install https://github.com/celery/vine/zipball/master#egg=vine\n\nWith git\n~~~~~~~~\n\nPlease see the Contributing section.\n\n.. _getting-help:\n\nGetting Help\n============\n\n.. _mailing-list:\n\nMailing list\n------------\n\nFor discussions about the usage, development, and future of Celery,\nplease join the `celery-users`_ mailing list.\n\n.. _`celery-users`: https://groups.google.com/group/celery-users/\n\n.. _irc-channel:\n\nIRC\n---\n\nCome chat with us on IRC. The **#celery** channel is located at the\n`Libera Chat`_ network.\n\n.. _`Libera Chat`: https://libera.chat/\n\n.. _bug-tracker:\n\nBug tracker\n===========\n\nIf you have any suggestions, bug reports, or annoyances please report them\nto our issue tracker at https://github.com/celery/celery/issues/\n\n.. _wiki:\n\nWiki\n====\n\nhttps://github.com/celery/celery/wiki\n\nCredits\n=======\n\n.. _contributing-short:\n\nContributors\n------------\n\nThis project exists thanks to all the people who contribute. Development of\n`celery` happens at GitHub: https://github.com/celery/celery\n\nYou're highly encouraged to participate in the development\nof `celery`. If you don't like GitHub (for some reason) you're welcome\nto send regular patches.\n\nBe sure to also read the `Contributing to Celery`_ section in the\ndocumentation.\n\n.. _`Contributing to Celery`:\n http://docs.celeryproject.org/en/master/contributing.html\n\n|oc-contributors|\n\n.. |oc-contributors| image:: https://opencollective.com/celery/contributors.svg?width=890&button=false\n :target: https://github.com/celery/celery/graphs/contributors\n\nBackers\n-------\n\nThank you to all our backers! \ud83d\ude4f [`Become a backer`_]\n\n.. _`Become a backer`: https://opencollective.com/celery#backer\n\n|oc-backers|\n\n.. |oc-backers| image:: https://opencollective.com/celery/backers.svg?width=890\n :target: https://opencollective.com/celery#backers\n\nSponsors\n--------\n\nSupport this project by becoming a sponsor. Your logo will show up here with a\nlink to your website. [`Become a sponsor`_]\n\n.. _`Become a sponsor`: https://opencollective.com/celery#sponsor\n\n|oc-sponsors|\n\n.. |oc-sponsors| image:: https://opencollective.com/celery/sponsor/0/avatar.svg\n :target: https://opencollective.com/celery/sponsor/0/website\n\n.. _license:\n\nLicense\n=======\n\nThis software is licensed under the `New BSD License`. See the ``LICENSE``\nfile in the top distribution directory for the full license text.\n\n.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround\n\n.. |build-status| image:: https://github.com/celery/celery/actions/workflows/python-package.yml/badge.svg\n :alt: Build status\n :target: https://github.com/celery/celery/actions/workflows/python-package.yml\n\n.. |coverage| image:: https://codecov.io/github/celery/celery/coverage.svg?branch=master\n :target: https://codecov.io/github/celery/celery?branch=master\n\n.. |license| image:: https://img.shields.io/pypi/l/celery.svg\n :alt: BSD License\n :target: https://opensource.org/licenses/BSD-3-Clause\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/celery.svg\n :alt: Celery can be installed via wheel\n :target: https://pypi.org/project/celery/\n\n.. |pyversion| image:: https://img.shields.io/pypi/pyversions/celery.svg\n :alt: Supported Python versions.\n :target: https://pypi.org/project/celery/\n\n.. |pyimp| image:: https://img.shields.io/pypi/implementation/celery.svg\n :alt: Supported Python implementations.\n :target: https://pypi.org/project/celery/\n\n.. |ocbackerbadge| image:: https://opencollective.com/celery/backers/badge.svg\n :alt: Backers on Open Collective\n :target: #backers\n\n.. |ocsponsorbadge| image:: https://opencollective.com/celery/sponsors/badge.svg\n :alt: Sponsors on Open Collective\n :target: #sponsors\n\n.. |downloads| image:: https://pepy.tech/badge/celery\n :alt: Downloads\n :target: https://pepy.tech/project/celery", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Ask Solem", + "email": "auvipy@gmail.com", + "url": null + } + ], + "keywords": [ + "task job queue distributed messaging actor", + "Development Status :: 5 - Production/Stable", + "Topic :: System :: Distributed Computing", + "Topic :: Software Development :: Object Brokering", + "Framework :: Celery", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Operating System :: OS Independent" + ], + "homepage_url": "http://celeryproject.org", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": "https://github.com/celery/celery/issues", + "code_view_url": "https://github.com/celery/celery", + "vcs_url": null, + "copyright": null, + "license_expression": "bsd-new AND bsd-new", + "declared_license": { + "license": "BSD", + "classifiers": [ + "License :: OSI Approved :: BSD License" + ] + }, + "notice_text": null, + "source_packages": [], + "file_references": [ + { + "path": "CONTRIBUTORS.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "Changelog.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "LICENSE", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "MANIFEST.in", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "README.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "TODO", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "pyproject.toml", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "setup.cfg", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "setup.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/__main__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/_state.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/beat.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bootsteps.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/canvas.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/exceptions.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/local.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/platforms.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/result.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/schedules.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/signals.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/states.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/PKG-INFO", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/SOURCES.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/dependency_links.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/entry_points.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/not-zip-safe", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/requires.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery.egg-info/top_level.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/amqp.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/annotations.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/autoretry.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/backends.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/base.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/builtins.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/control.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/defaults.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/events.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/log.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/registry.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/routes.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/task.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/trace.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/app/utils.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/apps/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/apps/beat.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/apps/multi.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/apps/worker.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/arangodb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/asynchronous.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/azureblockblob.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/base.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/cache.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/cassandra.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/consul.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/cosmosdbsql.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/couchbase.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/couchdb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/dynamodb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/elasticsearch.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/filesystem.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/mongodb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/redis.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/rpc.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/s3.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/database/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/database/models.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/backends/database/session.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/amqp.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/base.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/beat.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/call.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/celery.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/control.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/events.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/graph.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/list.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/logtool.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/migrate.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/multi.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/purge.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/result.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/shell.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/upgrade.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/bin/worker.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/asynpool.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/base.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/eventlet.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/gevent.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/prefork.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/solo.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/concurrency/thread.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/abortable.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/migrate.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/pytest.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/rdb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/sphinx.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/testing/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/testing/app.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/testing/manager.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/testing/mocks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/testing/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/contrib/testing/worker.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/cursesmon.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/dispatcher.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/dumper.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/event.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/receiver.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/snapshot.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/events/state.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/fixups/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/fixups/django.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/loaders/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/loaders/app.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/loaders/base.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/loaders/default.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/security/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/security/certificate.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/security/key.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/security/serialization.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/security/utils.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/abstract.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/collections.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/debug.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/deprecated.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/functional.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/graph.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/imports.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/iso8601.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/log.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/nodenames.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/objects.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/saferepr.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/serialization.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/sysinfo.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/term.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/text.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/threads.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/time.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/timer2.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/dispatch/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/dispatch/signal.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/static/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/utils/static/celery_128.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/autoscale.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/components.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/control.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/heartbeat.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/loops.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/pidbox.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/request.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/state.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/strategy.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/worker.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/agent.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/connection.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/consumer.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/control.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/events.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/gossip.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/heart.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/mingle.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "celery/worker/consumer/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/AUTHORS.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/Makefile", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/THANKS", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/changelog.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/community.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/conf.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/configuration.html", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/contributing.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/copyright.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/faq.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/glossary.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/make.bat", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/spelling_wordlist.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/whatsnew-5.2.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/_ext/celerydocs.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/_static/.keep", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/_templates/sidebardonations.html", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/django/first-steps-with-django.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/django/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/first-steps-with-celery.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/introduction.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/next-steps.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/resources.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/backends-and-brokers/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/backends-and-brokers/rabbitmq.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/backends-and-brokers/redis.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/getting-started/backends-and-brokers/sqs.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-1.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-2.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-2.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-2.2.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-2.3.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-2.4.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-2.5.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-3.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-3.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-4.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-4.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-4.2.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-4.3.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-4.4.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-5.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/changelog-5.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-2.5.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-3.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-3.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-4.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-4.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-4.2.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-4.3.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-4.4.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-5.0.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/history/whatsnew-5.1.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/celery-banner-small.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/celery-banner.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/celery_128.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/celery_512.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/celeryevshotsm.jpg", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/dashboard.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/favicon.ico", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/monitor.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/result_graph.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/images/worker_graph_full.png", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/includes/installation.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/includes/introduction.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/includes/resources.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/app-overview.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/deprecation.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/guide.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/protocol.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/worker.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery._state.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.app.annotations.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.app.routes.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.app.trace.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.arangodb.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.asynchronous.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.azureblockblob.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.base.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.cache.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.cassandra.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.consul.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.cosmosdbsql.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.couchbase.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.couchdb.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.database.models.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.database.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.database.session.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.dynamodb.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.elasticsearch.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.filesystem.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.mongodb.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.redis.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.rpc.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.backends.s3.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.base.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.eventlet.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.gevent.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.prefork.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.solo.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.concurrency.thread.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.events.cursesmon.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.events.dumper.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.events.snapshot.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.platforms.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.security.certificate.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.security.key.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.security.serialization.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.security.utils.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.abstract.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.collections.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.deprecated.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.dispatch.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.dispatch.signal.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.functional.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.graph.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.imports.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.iso8601.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.log.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.nodenames.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.objects.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.saferepr.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.serialization.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.sysinfo.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.term.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.text.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.threads.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.time.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.utils.timer2.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.worker.autoscale.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.worker.components.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.worker.control.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.worker.heartbeat.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.worker.loops.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/celery.worker.pidbox.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/internals/reference/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.amqp.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.autoretry.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.backends.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.builtins.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.control.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.defaults.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.events.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.log.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.registry.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.task.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.app.utils.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.apps.beat.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.apps.multi.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.apps.worker.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.beat.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.base.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.beat.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.call.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.celery.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.control.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.events.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.graph.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.list.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.logtool.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.migrate.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.multi.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.purge.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.result.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.shell.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.upgrade.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bin.worker.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.bootsteps.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.abortable.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.migrate.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.pytest.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.rdb.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.sphinx.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.testing.app.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.testing.manager.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.testing.mocks.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.contrib.testing.worker.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.events.dispatcher.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.events.event.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.events.receiver.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.events.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.events.state.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.exceptions.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.loaders.app.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.loaders.base.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.loaders.default.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.loaders.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.result.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.schedules.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.security.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.signals.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.states.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.utils.debug.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.agent.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.connection.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.consumer.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.control.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.events.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.gossip.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.heart.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.mingle.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.consumer.tasks.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.request.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.state.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.strategy.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/celery.worker.worker.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/cli.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/reference/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/sec/CELERYSA-0001.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/sec/CELERYSA-0002.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/sec/CELERYSA-0003.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/templates/readme.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/tutorials/daemonizing.html", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/tutorials/debugging.html", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/tutorials/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/tutorials/task-cookbook.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/application.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/calling.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/canvas.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/configuration.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/daemonizing.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/debugging.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/extending.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/monitoring.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/optimizing.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/periodic-tasks.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/routing.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/security.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/signals.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/sphinx.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/tasks.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/testing.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/workers.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/concurrency/eventlet.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "docs/userguide/concurrency/index.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/README.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/app/myapp.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/celery_http_gateway/README.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/celery_http_gateway/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/celery_http_gateway/manage.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/celery_http_gateway/settings.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/celery_http_gateway/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/celery_http_gateway/urls.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/README.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/manage.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/requirements.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/demoapp/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/demoapp/models.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/demoapp/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/demoapp/views.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/demoapp/migrations/0001_initial.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/demoapp/migrations/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/proj/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/proj/celery.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/proj/settings.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/proj/urls.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/django/proj/wsgi.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/eventlet/README.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/eventlet/bulk_task_producer.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/eventlet/celeryconfig.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/eventlet/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/eventlet/webcrawler.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/gevent/celeryconfig.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/gevent/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/next-steps/setup.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/next-steps/proj/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/next-steps/proj/celery.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/next-steps/proj/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/periodic-tasks/myapp.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/resultgraph/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/security/mysecureapp.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/security/ssl/worker.key", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/security/ssl/worker.pem", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "examples/tutorial/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/bash-completion/celery.bash", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/generic-init.d/celerybeat", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/generic-init.d/celeryd", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/macOS/org.celeryq.beat.plist", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/macOS/org.celeryq.worker.plist", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/supervisord/celery.sh", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/supervisord/celerybeat.conf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/supervisord/celeryd.conf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/supervisord/supervisord.conf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/systemd/celery.conf", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/systemd/celery.service", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/systemd/celery.tmpfiles", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/systemd/celerybeat.service", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "extra/zsh-completion/celery.zsh", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/README.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/default.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/dev.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/docs.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/pkgutils.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/security.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/test-ci-base.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/test-ci-default.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/test-integration.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/test-pypy3.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/test.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/deps/mock.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/arangodb.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/auth.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/azureblockblob.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/brotli.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/cassandra.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/consul.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/cosmosdbsql.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/couchbase.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/couchdb.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/django.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/dynamodb.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/elasticsearch.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/eventlet.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/gevent.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/librabbitmq.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/memcache.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/mongodb.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/msgpack.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/pymemcache.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/pyro.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/pytest.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/redis.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/s3.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/slmq.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/solar.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/sphinxautobuild.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/sqlalchemy.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/sqs.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/tblib.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/thread.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/yaml.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/zeromq.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/zookeeper.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "requirements/extras/zstd.txt", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/skip.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/benchmarks/bench_worker.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/conftest.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/test_backend.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/test_canvas.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/test_inspect.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/test_security.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/integration/test_tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/conftest.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/test_canvas.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_amqp.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_annotations.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_app.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_backends.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_beat.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_builtins.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_celery.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_control.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_defaults.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_exceptions.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_loaders.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_log.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_registry.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_routes.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_schedules.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/app/test_utils.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/apps/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/apps/test_multi.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_arangodb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_asynchronous.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_azureblockblob.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_base.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_cache.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_cassandra.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_consul.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_cosmosdbsql.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_couchbase.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_couchdb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_database.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_dynamodb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_elasticsearch.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_filesystem.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_mongodb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_redis.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_rpc.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/backends/test_s3.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/bin/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/bin/celery.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/bin/test_multi.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/bin/proj/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/bin/proj/app.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/bin/proj/app2.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_concurrency.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_eventlet.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_gevent.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_pool.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_prefork.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_solo.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/concurrency/test_thread.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/test_abortable.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/test_migrate.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/test_pytest.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/test_rdb.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/test_sphinx.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/proj/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/proj/conf.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/proj/contents.rst", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/proj/foo.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/contrib/proj/xyzzy.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/events/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/events/test_cursesmon.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/events/test_events.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/events/test_snapshot.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/events/test_state.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/fixups/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/fixups/test_django.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/security/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/security/case.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/security/test_certificate.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/security/test_key.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/security/test_security.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/security/test_serialization.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_canvas.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_chord.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_context.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_result.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_states.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/test_trace.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/tasks/unit_tasks.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_collections.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_debug.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_deprecated.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_dispatcher.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_functional.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_graph.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_imports.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_local.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_nodenames.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_objects.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_pickle.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_platforms.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_saferepr.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_serialization.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_sysinfo.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_term.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_text.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_threads.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_time.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_timer2.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/utils/test_utils.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/__init__.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_autoscale.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_bootsteps.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_components.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_consumer.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_control.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_heartbeat.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_loops.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_request.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_revoke.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_state.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_strategy.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + }, + { + "path": "t/unit/worker/test_worker.py", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "extra_data": {} + } + ], + "extra_data": { + "Documentation": "https://docs.celeryproject.org/en/latest/index.html", + "Changelog": "https://docs.celeryproject.org/en/stable/changelog.html", + "Funding": "https://opencollective.com/celery" + }, + "dependencies": [ + { + "purl": "pkg:pypi/pytz", + "extracted_requirement": "pytz>=2021.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/billiard", + "extracted_requirement": "billiard<4.0,>=3.6.4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/kombu", + "extracted_requirement": "kombu<6.0,>=5.2.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/vine", + "extracted_requirement": "vine<6.0,>=5.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/click", + "extracted_requirement": "click<9.0,>=8.0.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/click-didyoumean", + "extracted_requirement": "click-didyoumean>=0.0.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/click-repl", + "extracted_requirement": "click-repl>=0.2.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/click-plugins", + "extracted_requirement": "click-plugins>=1.1.1", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/importlib-metadata", + "extracted_requirement": "importlib-metadata>=1.4.0; python_version < \"3.8\"", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pyarango", + "extracted_requirement": "pyArango>=1.3.2; extra == \"arangodb\"", + "scope": "arangodb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/cryptography", + "extracted_requirement": "cryptography; extra == \"auth\"", + "scope": "auth", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/azure-storage-blob@12.9.0", + "extracted_requirement": "azure-storage-blob==12.9.0; extra == \"azureblockblob\"", + "scope": "azureblockblob", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/brotli", + "extracted_requirement": "brotli>=1.0.0; platform_python_implementation == \"CPython\" and extra == \"brotli\"", + "scope": "brotli", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/brotlipy", + "extracted_requirement": "brotlipy>=0.7.0; platform_python_implementation == \"PyPy\" and extra == \"brotli\"", + "scope": "brotli", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/cassandra-driver", + "extracted_requirement": "cassandra-driver<3.21.0; extra == \"cassandra\"", + "scope": "cassandra", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/python-consul2", + "extracted_requirement": "python-consul2; extra == \"consul\"", + "scope": "consul", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pydocumentdb@2.3.2", + "extracted_requirement": "pydocumentdb==2.3.2; extra == \"cosmosdbsql\"", + "scope": "cosmosdbsql", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/couchbase", + "extracted_requirement": "couchbase>=3.0.0; (platform_python_implementation != \"PyPy\" and (platform_system != \"Windows\" or python_version < \"3.10\")) and extra == \"couchbase\"", + "scope": "couchbase", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pycouchdb", + "extracted_requirement": "pycouchdb; extra == \"couchdb\"", + "scope": "couchdb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/django", + "extracted_requirement": "Django>=1.11; extra == \"django\"", + "scope": "django", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/boto3", + "extracted_requirement": "boto3>=1.9.178; extra == \"dynamodb\"", + "scope": "dynamodb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/elasticsearch", + "extracted_requirement": "elasticsearch; extra == \"elasticsearch\"", + "scope": "elasticsearch", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/eventlet", + "extracted_requirement": "eventlet>=0.32.0; python_version < \"3.10\" and extra == \"eventlet\"", + "scope": "eventlet", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/gevent", + "extracted_requirement": "gevent>=1.5.0; extra == \"gevent\"", + "scope": "gevent", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/librabbitmq", + "extracted_requirement": "librabbitmq>=1.5.0; extra == \"librabbitmq\"", + "scope": "librabbitmq", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pylibmc", + "extracted_requirement": "pylibmc; platform_system != \"Windows\" and extra == \"memcache\"", + "scope": "memcache", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pymongo", + "extracted_requirement": "pymongo[srv]>=3.11.1; extra == \"mongodb\"", + "scope": "mongodb", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/msgpack", + "extracted_requirement": "msgpack; extra == \"msgpack\"", + "scope": "msgpack", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/python-memcached", + "extracted_requirement": "python-memcached; extra == \"pymemcache\"", + "scope": "pymemcache", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pyro4", + "extracted_requirement": "pyro4; extra == \"pyro\"", + "scope": "pyro", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-celery", + "extracted_requirement": "pytest-celery; extra == \"pytest\"", + "scope": "pytest", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/redis", + "extracted_requirement": "redis!=4.0.0,!=4.0.1,>=3.4.1; extra == \"redis\"", + "scope": "redis", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/boto3", + "extracted_requirement": "boto3>=1.9.125; extra == \"s3\"", + "scope": "s3", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/softlayer-messaging", + "extracted_requirement": "softlayer_messaging>=1.0.3; extra == \"slmq\"", + "scope": "slmq", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/ephem", + "extracted_requirement": "ephem; platform_python_implementation != \"PyPy\" and extra == \"solar\"", + "scope": "solar", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/sqlalchemy", + "extracted_requirement": "sqlalchemy; extra == \"sqlalchemy\"", + "scope": "sqlalchemy", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/kombu", + "extracted_requirement": "kombu[sqs]; extra == \"sqs\"", + "scope": "sqs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/tblib", + "extracted_requirement": "tblib>=1.3.0; python_version < \"3.8.0\" and extra == \"tblib\"", + "scope": "tblib", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/tblib", + "extracted_requirement": "tblib>=1.5.0; python_version >= \"3.8.0\" and extra == \"tblib\"", + "scope": "tblib", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pyyaml", + "extracted_requirement": "PyYAML>=3.10; extra == \"yaml\"", + "scope": "yaml", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/kazoo", + "extracted_requirement": "kazoo>=1.3.1; extra == \"zookeeper\"", + "scope": "zookeeper", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/zstandard", + "extracted_requirement": "zstandard; extra == \"zstd\"", + "scope": "zstd", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://pypi.org/project/celery", + "repository_download_url": "https://pypi.org/packages/source/c/celery/celery-5.2.7.tar.gz", + "api_data_url": "https://pypi.org/pypi/celery/5.2.7/json", + "datasource_id": "pypi_editable_egg_pkginfo", + "purl": "pkg:pypi/celery@5.2.7" + } + ], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/SOURCES.txt", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/dependency_links.txt", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/entry_points.txt", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/not-zip-safe", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/requires.txt", + "type": "file", + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:pypi/pytz", + "extracted_requirement": ">=2021.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/billiard", + "extracted_requirement": ">=3.6.4.0,<4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/kombu", + "extracted_requirement": ">=5.2.3,<6.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/vine", + "extracted_requirement": ">=5.0.0,<6.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/click", + "extracted_requirement": ">=8.0.3,<9.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/click-didyoumean", + "extracted_requirement": ">=0.0.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/click-repl", + "extracted_requirement": ">=0.2.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/click-plugins", + "extracted_requirement": ">=1.1.1", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/importlib-metadata", + "extracted_requirement": ">=1.4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pyarango", + "extracted_requirement": ">=1.3.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/cryptography", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/azure-storage-blob@12.9.0", + "extracted_requirement": "==12.9.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/brotli", + "extracted_requirement": ">=1.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/brotlipy", + "extracted_requirement": ">=0.7.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/cassandra-driver", + "extracted_requirement": "<3.21.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/python-consul2", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pydocumentdb@2.3.2", + "extracted_requirement": "==2.3.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/couchbase", + "extracted_requirement": ">=3.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pycouchdb", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/django", + "extracted_requirement": ">=1.11", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/boto3", + "extracted_requirement": ">=1.9.178", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/elasticsearch", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/eventlet", + "extracted_requirement": ">=0.32.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/gevent", + "extracted_requirement": ">=1.5.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/librabbitmq", + "extracted_requirement": ">=1.5.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pylibmc", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pymongo", + "extracted_requirement": "[srv]>=3.11.1", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/msgpack", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/python-memcached", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pyro4", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pytest-celery", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/redis", + "extracted_requirement": ">=3.4.1,!=4.0.0,!=4.0.1", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/boto3", + "extracted_requirement": ">=1.9.125", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/softlayer-messaging", + "extracted_requirement": ">=1.0.3", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/ephem", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/sqlalchemy", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/kombu", + "extracted_requirement": "[sqs]", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/tblib", + "extracted_requirement": ">=1.3.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/tblib", + "extracted_requirement": ">=1.5.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/pyyaml", + "extracted_requirement": ">=3.10", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/kazoo", + "extracted_requirement": ">=1.3.1", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/zstandard", + "extracted_requirement": "", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pip_requirements", + "purl": null + } + ], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "celery/celery.egg-info/top_level.txt", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:pypi/celery@5.2.7?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/PKG-INFO b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/PKG-INFO new file mode 100644 index 00000000000..972c75dfa00 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/PKG-INFO @@ -0,0 +1,605 @@ +Metadata-Version: 2.1 +Name: celery +Version: 5.2.7 +Summary: Distributed Task Queue. +Home-page: http://celeryproject.org +Author: Ask Solem +Author-email: auvipy@gmail.com +License: BSD +Project-URL: Documentation, https://docs.celeryproject.org/en/latest/index.html +Project-URL: Changelog, https://docs.celeryproject.org/en/stable/changelog.html +Project-URL: Code, https://github.com/celery/celery +Project-URL: Tracker, https://github.com/celery/celery/issues +Project-URL: Funding, https://opencollective.com/celery +Keywords: task job queue distributed messaging actor +Platform: any +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: BSD License +Classifier: Topic :: System :: Distributed Computing +Classifier: Topic :: Software Development :: Object Brokering +Classifier: Framework :: Celery +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Operating System :: OS Independent +Requires-Python: >=3.7 +Provides-Extra: sqs +Provides-Extra: librabbitmq +Provides-Extra: django +Provides-Extra: cosmosdbsql +Provides-Extra: s3 +Provides-Extra: couchbase +Provides-Extra: redis +Provides-Extra: zookeeper +Provides-Extra: eventlet +Provides-Extra: dynamodb +Provides-Extra: zstd +Provides-Extra: couchdb +Provides-Extra: pymemcache +Provides-Extra: slmq +Provides-Extra: sqlalchemy +Provides-Extra: solar +Provides-Extra: elasticsearch +Provides-Extra: arangodb +Provides-Extra: tblib +Provides-Extra: cassandra +Provides-Extra: brotli +Provides-Extra: pytest +Provides-Extra: mongodb +Provides-Extra: yaml +Provides-Extra: pyro +Provides-Extra: gevent +Provides-Extra: auth +Provides-Extra: azureblockblob +Provides-Extra: msgpack +Provides-Extra: consul +Provides-Extra: memcache +License-File: LICENSE + +.. image:: http://docs.celeryproject.org/en/latest/_images/celery-banner-small.png + +|build-status| |coverage| |license| |wheel| |pyversion| |pyimp| |ocbackerbadge| |ocsponsorbadge| + +:Version: 5.2.7 (dawn-chorus) +:Web: https://docs.celeryproject.org/en/stable/index.html +:Download: https://pypi.org/project/celery/ +:Source: https://github.com/celery/celery/ +:Keywords: task, queue, job, async, rabbitmq, amqp, redis, + python, distributed, actors + +Donations +========= + +This project relies on your generous donations. + +If you are using Celery to create a commercial product, please consider becoming our `backer`_ or our `sponsor`_ to ensure Celery's future. + +.. _`backer`: https://opencollective.com/celery#backer +.. _`sponsor`: https://opencollective.com/celery#sponsor + +For enterprise +============== + +Available as part of the Tidelift Subscription. + +The maintainers of ``celery`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. `Learn more. `_ + +What's a Task Queue? +==================== + +Task queues are used as a mechanism to distribute work across threads or +machines. + +A task queue's input is a unit of work, called a task, dedicated worker +processes then constantly monitor the queue for new work to perform. + +Celery communicates via messages, usually using a broker +to mediate between clients and workers. To initiate a task a client puts a +message on the queue, the broker then delivers the message to a worker. + +A Celery system can consist of multiple workers and brokers, giving way +to high availability and horizontal scaling. + +Celery is written in Python, but the protocol can be implemented in any +language. In addition to Python there's node-celery_ for Node.js, +a `PHP client`_, `gocelery`_ for golang, and rusty-celery_ for Rust. + +Language interoperability can also be achieved by using webhooks +in such a way that the client enqueues an URL to be requested by a worker. + +.. _node-celery: https://github.com/mher/node-celery +.. _`PHP client`: https://github.com/gjedeer/celery-php +.. _`gocelery`: https://github.com/gocelery/gocelery +.. _rusty-celery: https://github.com/rusty-celery/rusty-celery + +What do I need? +=============== + +Celery version 5.2.0 runs on, + +- Python (3.7, 3.8, 3.9, 3.10) +- PyPy3.7 (7.3.7+) + + +This is the version of celery which will support Python 3.7 or newer. + +If you're running an older version of Python, you need to be running +an older version of Celery: + +- Python 2.6: Celery series 3.1 or earlier. +- Python 2.5: Celery series 3.0 or earlier. +- Python 2.4: Celery series 2.2 or earlier. +- Python 2.7: Celery 4.x series. +- Python 3.6: Celery 5.1 or earlier. + +Celery is a project with minimal funding, +so we don't support Microsoft Windows. +Please don't open any issues related to that platform. + +*Celery* is usually used with a message broker to send and receive messages. +The RabbitMQ, Redis transports are feature complete, +but there's also experimental support for a myriad of other solutions, including +using SQLite for local development. + +*Celery* can run on a single machine, on multiple machines, or even +across datacenters. + +Get Started +=========== + +If this is the first time you're trying to use Celery, or you're +new to Celery v5.2.0 coming from previous versions then you should read our +getting started tutorials: + +- `First steps with Celery`_ + + Tutorial teaching you the bare minimum needed to get started with Celery. + +- `Next steps`_ + + A more complete overview, showing more features. + +.. _`First steps with Celery`: + http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html + +.. _`Next steps`: + http://docs.celeryproject.org/en/latest/getting-started/next-steps.html + + You can also get started with Celery by using a hosted broker transport CloudAMQP. The largest hosting provider of RabbitMQ is a proud sponsor of Celery. + +Celery is... +============= + +- **Simple** + + Celery is easy to use and maintain, and does *not need configuration files*. + + It has an active, friendly community you can talk to for support, + like at our `mailing-list`_, or the IRC channel. + + Here's one of the simplest applications you can make: + + .. code-block:: python + + from celery import Celery + + app = Celery('hello', broker='amqp://guest@localhost//') + + @app.task + def hello(): + return 'hello world' + +- **Highly Available** + + Workers and clients will automatically retry in the event + of connection loss or failure, and some brokers support + HA in way of *Primary/Primary* or *Primary/Replica* replication. + +- **Fast** + + A single Celery process can process millions of tasks a minute, + with sub-millisecond round-trip latency (using RabbitMQ, + py-librabbitmq, and optimized settings). + +- **Flexible** + + Almost every part of *Celery* can be extended or used on its own, + Custom pool implementations, serializers, compression schemes, logging, + schedulers, consumers, producers, broker transports, and much more. + +It supports... +================ + + - **Message Transports** + + - RabbitMQ_, Redis_, Amazon SQS + + - **Concurrency** + + - Prefork, Eventlet_, gevent_, single threaded (``solo``) + + - **Result Stores** + + - AMQP, Redis + - memcached + - SQLAlchemy, Django ORM + - Apache Cassandra, IronCache, Elasticsearch + + - **Serialization** + + - *pickle*, *json*, *yaml*, *msgpack*. + - *zlib*, *bzip2* compression. + - Cryptographic message signing. + +.. _`Eventlet`: http://eventlet.net/ +.. _`gevent`: http://gevent.org/ + +.. _RabbitMQ: https://rabbitmq.com +.. _Redis: https://redis.io +.. _SQLAlchemy: http://sqlalchemy.org + +Framework Integration +===================== + +Celery is easy to integrate with web frameworks, some of which even have +integration packages: + + +--------------------+------------------------+ + | `Django`_ | not needed | + +--------------------+------------------------+ + | `Pyramid`_ | `pyramid_celery`_ | + +--------------------+------------------------+ + | `Pylons`_ | `celery-pylons`_ | + +--------------------+------------------------+ + | `Flask`_ | not needed | + +--------------------+------------------------+ + | `web2py`_ | `web2py-celery`_ | + +--------------------+------------------------+ + | `Tornado`_ | `tornado-celery`_ | + +--------------------+------------------------+ + +The integration packages aren't strictly necessary, but they can make +development easier, and sometimes they add important hooks like closing +database connections at ``fork``. + +.. _`Django`: https://djangoproject.com/ +.. _`Pylons`: http://pylonsproject.org/ +.. _`Flask`: http://flask.pocoo.org/ +.. _`web2py`: http://web2py.com/ +.. _`Bottle`: https://bottlepy.org/ +.. _`Pyramid`: http://docs.pylonsproject.org/en/latest/docs/pyramid.html +.. _`pyramid_celery`: https://pypi.org/project/pyramid_celery/ +.. _`celery-pylons`: https://pypi.org/project/celery-pylons/ +.. _`web2py-celery`: https://code.google.com/p/web2py-celery/ +.. _`Tornado`: http://www.tornadoweb.org/ +.. _`tornado-celery`: https://github.com/mher/tornado-celery/ + +.. _celery-documentation: + +Documentation +============= + +The `latest documentation`_ is hosted at Read The Docs, containing user guides, +tutorials, and an API reference. + +最新的中文文档托管在 https://www.celerycn.io/ 中,包含用户指南、教程、API接口等。 + +.. _`latest documentation`: http://docs.celeryproject.org/en/latest/ + +.. _celery-installation: + +Installation +============ + +You can install Celery either via the Python Package Index (PyPI) +or from source. + +To install using ``pip``: + +:: + + + $ pip install -U Celery + +.. _bundles: + +Bundles +------- + +Celery also defines a group of bundles that can be used +to install Celery and the dependencies for a given feature. + +You can specify these in your requirements or on the ``pip`` +command-line by using brackets. Multiple bundles can be specified by +separating them by commas. + +:: + + + $ pip install "celery[amqp]" + + $ pip install "celery[amqp,redis,auth,msgpack]" + +The following bundles are available: + +Serializers +~~~~~~~~~~~ + +:``celery[auth]``: + for using the ``auth`` security serializer. + +:``celery[msgpack]``: + for using the msgpack serializer. + +:``celery[yaml]``: + for using the yaml serializer. + +Concurrency +~~~~~~~~~~~ + +:``celery[eventlet]``: + for using the ``eventlet`` pool. + +:``celery[gevent]``: + for using the ``gevent`` pool. + +Transports and Backends +~~~~~~~~~~~~~~~~~~~~~~~ + +:``celery[amqp]``: + for using the RabbitMQ amqp python library. + +:``celery[redis]``: + for using Redis as a message transport or as a result backend. + +:``celery[sqs]``: + for using Amazon SQS as a message transport. + +:``celery[tblib``]: + for using the ``task_remote_tracebacks`` feature. + +:``celery[memcache]``: + for using Memcached as a result backend (using ``pylibmc``) + +:``celery[pymemcache]``: + for using Memcached as a result backend (pure-Python implementation). + +:``celery[cassandra]``: + for using Apache Cassandra as a result backend with DataStax driver. + +:``celery[azureblockblob]``: + for using Azure Storage as a result backend (using ``azure-storage``) + +:``celery[s3]``: + for using S3 Storage as a result backend. + +:``celery[couchbase]``: + for using Couchbase as a result backend. + +:``celery[arangodb]``: + for using ArangoDB as a result backend. + +:``celery[elasticsearch]``: + for using Elasticsearch as a result backend. + +:``celery[riak]``: + for using Riak as a result backend. + +:``celery[cosmosdbsql]``: + for using Azure Cosmos DB as a result backend (using ``pydocumentdb``) + +:``celery[zookeeper]``: + for using Zookeeper as a message transport. + +:``celery[sqlalchemy]``: + for using SQLAlchemy as a result backend (*supported*). + +:``celery[pyro]``: + for using the Pyro4 message transport (*experimental*). + +:``celery[slmq]``: + for using the SoftLayer Message Queue transport (*experimental*). + +:``celery[consul]``: + for using the Consul.io Key/Value store as a message transport or result backend (*experimental*). + +:``celery[django]``: + specifies the lowest version possible for Django support. + + You should probably not use this in your requirements, it's here + for informational purposes only. + + +.. _celery-installing-from-source: + +Downloading and installing from source +-------------------------------------- + +Download the latest version of Celery from PyPI: + +https://pypi.org/project/celery/ + +You can install it by doing the following,: + +:: + + + $ tar xvfz celery-0.0.0.tar.gz + $ cd celery-0.0.0 + $ python setup.py build + # python setup.py install + +The last command must be executed as a privileged user if +you aren't currently using a virtualenv. + +.. _celery-installing-from-git: + +Using the development version +----------------------------- + +With pip +~~~~~~~~ + +The Celery development version also requires the development +versions of ``kombu``, ``amqp``, ``billiard``, and ``vine``. + +You can install the latest snapshot of these using the following +pip commands: + +:: + + + $ pip install https://github.com/celery/celery/zipball/master#egg=celery + $ pip install https://github.com/celery/billiard/zipball/master#egg=billiard + $ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp + $ pip install https://github.com/celery/kombu/zipball/master#egg=kombu + $ pip install https://github.com/celery/vine/zipball/master#egg=vine + +With git +~~~~~~~~ + +Please see the Contributing section. + +.. _getting-help: + +Getting Help +============ + +.. _mailing-list: + +Mailing list +------------ + +For discussions about the usage, development, and future of Celery, +please join the `celery-users`_ mailing list. + +.. _`celery-users`: https://groups.google.com/group/celery-users/ + +.. _irc-channel: + +IRC +--- + +Come chat with us on IRC. The **#celery** channel is located at the +`Libera Chat`_ network. + +.. _`Libera Chat`: https://libera.chat/ + +.. _bug-tracker: + +Bug tracker +=========== + +If you have any suggestions, bug reports, or annoyances please report them +to our issue tracker at https://github.com/celery/celery/issues/ + +.. _wiki: + +Wiki +==== + +https://github.com/celery/celery/wiki + +Credits +======= + +.. _contributing-short: + +Contributors +------------ + +This project exists thanks to all the people who contribute. Development of +`celery` happens at GitHub: https://github.com/celery/celery + +You're highly encouraged to participate in the development +of `celery`. If you don't like GitHub (for some reason) you're welcome +to send regular patches. + +Be sure to also read the `Contributing to Celery`_ section in the +documentation. + +.. _`Contributing to Celery`: + http://docs.celeryproject.org/en/master/contributing.html + +|oc-contributors| + +.. |oc-contributors| image:: https://opencollective.com/celery/contributors.svg?width=890&button=false + :target: https://github.com/celery/celery/graphs/contributors + +Backers +------- + +Thank you to all our backers! 🙏 [`Become a backer`_] + +.. _`Become a backer`: https://opencollective.com/celery#backer + +|oc-backers| + +.. |oc-backers| image:: https://opencollective.com/celery/backers.svg?width=890 + :target: https://opencollective.com/celery#backers + +Sponsors +-------- + +Support this project by becoming a sponsor. Your logo will show up here with a +link to your website. [`Become a sponsor`_] + +.. _`Become a sponsor`: https://opencollective.com/celery#sponsor + +|oc-sponsors| + +.. |oc-sponsors| image:: https://opencollective.com/celery/sponsor/0/avatar.svg + :target: https://opencollective.com/celery/sponsor/0/website + +.. _license: + +License +======= + +This software is licensed under the `New BSD License`. See the ``LICENSE`` +file in the top distribution directory for the full license text. + +.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround + +.. |build-status| image:: https://github.com/celery/celery/actions/workflows/python-package.yml/badge.svg + :alt: Build status + :target: https://github.com/celery/celery/actions/workflows/python-package.yml + +.. |coverage| image:: https://codecov.io/github/celery/celery/coverage.svg?branch=master + :target: https://codecov.io/github/celery/celery?branch=master + +.. |license| image:: https://img.shields.io/pypi/l/celery.svg + :alt: BSD License + :target: https://opensource.org/licenses/BSD-3-Clause + +.. |wheel| image:: https://img.shields.io/pypi/wheel/celery.svg + :alt: Celery can be installed via wheel + :target: https://pypi.org/project/celery/ + +.. |pyversion| image:: https://img.shields.io/pypi/pyversions/celery.svg + :alt: Supported Python versions. + :target: https://pypi.org/project/celery/ + +.. |pyimp| image:: https://img.shields.io/pypi/implementation/celery.svg + :alt: Supported Python implementations. + :target: https://pypi.org/project/celery/ + +.. |ocbackerbadge| image:: https://opencollective.com/celery/backers/badge.svg + :alt: Backers on Open Collective + :target: #backers + +.. |ocsponsorbadge| image:: https://opencollective.com/celery/sponsors/badge.svg + :alt: Sponsors on Open Collective + :target: #sponsors + +.. |downloads| image:: https://pepy.tech/badge/celery + :alt: Downloads + :target: https://pepy.tech/project/celery + + diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/PKG-INFO b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/PKG-INFO new file mode 100644 index 00000000000..972c75dfa00 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/PKG-INFO @@ -0,0 +1,605 @@ +Metadata-Version: 2.1 +Name: celery +Version: 5.2.7 +Summary: Distributed Task Queue. +Home-page: http://celeryproject.org +Author: Ask Solem +Author-email: auvipy@gmail.com +License: BSD +Project-URL: Documentation, https://docs.celeryproject.org/en/latest/index.html +Project-URL: Changelog, https://docs.celeryproject.org/en/stable/changelog.html +Project-URL: Code, https://github.com/celery/celery +Project-URL: Tracker, https://github.com/celery/celery/issues +Project-URL: Funding, https://opencollective.com/celery +Keywords: task job queue distributed messaging actor +Platform: any +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: BSD License +Classifier: Topic :: System :: Distributed Computing +Classifier: Topic :: Software Development :: Object Brokering +Classifier: Framework :: Celery +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Operating System :: OS Independent +Requires-Python: >=3.7 +Provides-Extra: sqs +Provides-Extra: librabbitmq +Provides-Extra: django +Provides-Extra: cosmosdbsql +Provides-Extra: s3 +Provides-Extra: couchbase +Provides-Extra: redis +Provides-Extra: zookeeper +Provides-Extra: eventlet +Provides-Extra: dynamodb +Provides-Extra: zstd +Provides-Extra: couchdb +Provides-Extra: pymemcache +Provides-Extra: slmq +Provides-Extra: sqlalchemy +Provides-Extra: solar +Provides-Extra: elasticsearch +Provides-Extra: arangodb +Provides-Extra: tblib +Provides-Extra: cassandra +Provides-Extra: brotli +Provides-Extra: pytest +Provides-Extra: mongodb +Provides-Extra: yaml +Provides-Extra: pyro +Provides-Extra: gevent +Provides-Extra: auth +Provides-Extra: azureblockblob +Provides-Extra: msgpack +Provides-Extra: consul +Provides-Extra: memcache +License-File: LICENSE + +.. image:: http://docs.celeryproject.org/en/latest/_images/celery-banner-small.png + +|build-status| |coverage| |license| |wheel| |pyversion| |pyimp| |ocbackerbadge| |ocsponsorbadge| + +:Version: 5.2.7 (dawn-chorus) +:Web: https://docs.celeryproject.org/en/stable/index.html +:Download: https://pypi.org/project/celery/ +:Source: https://github.com/celery/celery/ +:Keywords: task, queue, job, async, rabbitmq, amqp, redis, + python, distributed, actors + +Donations +========= + +This project relies on your generous donations. + +If you are using Celery to create a commercial product, please consider becoming our `backer`_ or our `sponsor`_ to ensure Celery's future. + +.. _`backer`: https://opencollective.com/celery#backer +.. _`sponsor`: https://opencollective.com/celery#sponsor + +For enterprise +============== + +Available as part of the Tidelift Subscription. + +The maintainers of ``celery`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. `Learn more. `_ + +What's a Task Queue? +==================== + +Task queues are used as a mechanism to distribute work across threads or +machines. + +A task queue's input is a unit of work, called a task, dedicated worker +processes then constantly monitor the queue for new work to perform. + +Celery communicates via messages, usually using a broker +to mediate between clients and workers. To initiate a task a client puts a +message on the queue, the broker then delivers the message to a worker. + +A Celery system can consist of multiple workers and brokers, giving way +to high availability and horizontal scaling. + +Celery is written in Python, but the protocol can be implemented in any +language. In addition to Python there's node-celery_ for Node.js, +a `PHP client`_, `gocelery`_ for golang, and rusty-celery_ for Rust. + +Language interoperability can also be achieved by using webhooks +in such a way that the client enqueues an URL to be requested by a worker. + +.. _node-celery: https://github.com/mher/node-celery +.. _`PHP client`: https://github.com/gjedeer/celery-php +.. _`gocelery`: https://github.com/gocelery/gocelery +.. _rusty-celery: https://github.com/rusty-celery/rusty-celery + +What do I need? +=============== + +Celery version 5.2.0 runs on, + +- Python (3.7, 3.8, 3.9, 3.10) +- PyPy3.7 (7.3.7+) + + +This is the version of celery which will support Python 3.7 or newer. + +If you're running an older version of Python, you need to be running +an older version of Celery: + +- Python 2.6: Celery series 3.1 or earlier. +- Python 2.5: Celery series 3.0 or earlier. +- Python 2.4: Celery series 2.2 or earlier. +- Python 2.7: Celery 4.x series. +- Python 3.6: Celery 5.1 or earlier. + +Celery is a project with minimal funding, +so we don't support Microsoft Windows. +Please don't open any issues related to that platform. + +*Celery* is usually used with a message broker to send and receive messages. +The RabbitMQ, Redis transports are feature complete, +but there's also experimental support for a myriad of other solutions, including +using SQLite for local development. + +*Celery* can run on a single machine, on multiple machines, or even +across datacenters. + +Get Started +=========== + +If this is the first time you're trying to use Celery, or you're +new to Celery v5.2.0 coming from previous versions then you should read our +getting started tutorials: + +- `First steps with Celery`_ + + Tutorial teaching you the bare minimum needed to get started with Celery. + +- `Next steps`_ + + A more complete overview, showing more features. + +.. _`First steps with Celery`: + http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html + +.. _`Next steps`: + http://docs.celeryproject.org/en/latest/getting-started/next-steps.html + + You can also get started with Celery by using a hosted broker transport CloudAMQP. The largest hosting provider of RabbitMQ is a proud sponsor of Celery. + +Celery is... +============= + +- **Simple** + + Celery is easy to use and maintain, and does *not need configuration files*. + + It has an active, friendly community you can talk to for support, + like at our `mailing-list`_, or the IRC channel. + + Here's one of the simplest applications you can make: + + .. code-block:: python + + from celery import Celery + + app = Celery('hello', broker='amqp://guest@localhost//') + + @app.task + def hello(): + return 'hello world' + +- **Highly Available** + + Workers and clients will automatically retry in the event + of connection loss or failure, and some brokers support + HA in way of *Primary/Primary* or *Primary/Replica* replication. + +- **Fast** + + A single Celery process can process millions of tasks a minute, + with sub-millisecond round-trip latency (using RabbitMQ, + py-librabbitmq, and optimized settings). + +- **Flexible** + + Almost every part of *Celery* can be extended or used on its own, + Custom pool implementations, serializers, compression schemes, logging, + schedulers, consumers, producers, broker transports, and much more. + +It supports... +================ + + - **Message Transports** + + - RabbitMQ_, Redis_, Amazon SQS + + - **Concurrency** + + - Prefork, Eventlet_, gevent_, single threaded (``solo``) + + - **Result Stores** + + - AMQP, Redis + - memcached + - SQLAlchemy, Django ORM + - Apache Cassandra, IronCache, Elasticsearch + + - **Serialization** + + - *pickle*, *json*, *yaml*, *msgpack*. + - *zlib*, *bzip2* compression. + - Cryptographic message signing. + +.. _`Eventlet`: http://eventlet.net/ +.. _`gevent`: http://gevent.org/ + +.. _RabbitMQ: https://rabbitmq.com +.. _Redis: https://redis.io +.. _SQLAlchemy: http://sqlalchemy.org + +Framework Integration +===================== + +Celery is easy to integrate with web frameworks, some of which even have +integration packages: + + +--------------------+------------------------+ + | `Django`_ | not needed | + +--------------------+------------------------+ + | `Pyramid`_ | `pyramid_celery`_ | + +--------------------+------------------------+ + | `Pylons`_ | `celery-pylons`_ | + +--------------------+------------------------+ + | `Flask`_ | not needed | + +--------------------+------------------------+ + | `web2py`_ | `web2py-celery`_ | + +--------------------+------------------------+ + | `Tornado`_ | `tornado-celery`_ | + +--------------------+------------------------+ + +The integration packages aren't strictly necessary, but they can make +development easier, and sometimes they add important hooks like closing +database connections at ``fork``. + +.. _`Django`: https://djangoproject.com/ +.. _`Pylons`: http://pylonsproject.org/ +.. _`Flask`: http://flask.pocoo.org/ +.. _`web2py`: http://web2py.com/ +.. _`Bottle`: https://bottlepy.org/ +.. _`Pyramid`: http://docs.pylonsproject.org/en/latest/docs/pyramid.html +.. _`pyramid_celery`: https://pypi.org/project/pyramid_celery/ +.. _`celery-pylons`: https://pypi.org/project/celery-pylons/ +.. _`web2py-celery`: https://code.google.com/p/web2py-celery/ +.. _`Tornado`: http://www.tornadoweb.org/ +.. _`tornado-celery`: https://github.com/mher/tornado-celery/ + +.. _celery-documentation: + +Documentation +============= + +The `latest documentation`_ is hosted at Read The Docs, containing user guides, +tutorials, and an API reference. + +最新的中文文档托管在 https://www.celerycn.io/ 中,包含用户指南、教程、API接口等。 + +.. _`latest documentation`: http://docs.celeryproject.org/en/latest/ + +.. _celery-installation: + +Installation +============ + +You can install Celery either via the Python Package Index (PyPI) +or from source. + +To install using ``pip``: + +:: + + + $ pip install -U Celery + +.. _bundles: + +Bundles +------- + +Celery also defines a group of bundles that can be used +to install Celery and the dependencies for a given feature. + +You can specify these in your requirements or on the ``pip`` +command-line by using brackets. Multiple bundles can be specified by +separating them by commas. + +:: + + + $ pip install "celery[amqp]" + + $ pip install "celery[amqp,redis,auth,msgpack]" + +The following bundles are available: + +Serializers +~~~~~~~~~~~ + +:``celery[auth]``: + for using the ``auth`` security serializer. + +:``celery[msgpack]``: + for using the msgpack serializer. + +:``celery[yaml]``: + for using the yaml serializer. + +Concurrency +~~~~~~~~~~~ + +:``celery[eventlet]``: + for using the ``eventlet`` pool. + +:``celery[gevent]``: + for using the ``gevent`` pool. + +Transports and Backends +~~~~~~~~~~~~~~~~~~~~~~~ + +:``celery[amqp]``: + for using the RabbitMQ amqp python library. + +:``celery[redis]``: + for using Redis as a message transport or as a result backend. + +:``celery[sqs]``: + for using Amazon SQS as a message transport. + +:``celery[tblib``]: + for using the ``task_remote_tracebacks`` feature. + +:``celery[memcache]``: + for using Memcached as a result backend (using ``pylibmc``) + +:``celery[pymemcache]``: + for using Memcached as a result backend (pure-Python implementation). + +:``celery[cassandra]``: + for using Apache Cassandra as a result backend with DataStax driver. + +:``celery[azureblockblob]``: + for using Azure Storage as a result backend (using ``azure-storage``) + +:``celery[s3]``: + for using S3 Storage as a result backend. + +:``celery[couchbase]``: + for using Couchbase as a result backend. + +:``celery[arangodb]``: + for using ArangoDB as a result backend. + +:``celery[elasticsearch]``: + for using Elasticsearch as a result backend. + +:``celery[riak]``: + for using Riak as a result backend. + +:``celery[cosmosdbsql]``: + for using Azure Cosmos DB as a result backend (using ``pydocumentdb``) + +:``celery[zookeeper]``: + for using Zookeeper as a message transport. + +:``celery[sqlalchemy]``: + for using SQLAlchemy as a result backend (*supported*). + +:``celery[pyro]``: + for using the Pyro4 message transport (*experimental*). + +:``celery[slmq]``: + for using the SoftLayer Message Queue transport (*experimental*). + +:``celery[consul]``: + for using the Consul.io Key/Value store as a message transport or result backend (*experimental*). + +:``celery[django]``: + specifies the lowest version possible for Django support. + + You should probably not use this in your requirements, it's here + for informational purposes only. + + +.. _celery-installing-from-source: + +Downloading and installing from source +-------------------------------------- + +Download the latest version of Celery from PyPI: + +https://pypi.org/project/celery/ + +You can install it by doing the following,: + +:: + + + $ tar xvfz celery-0.0.0.tar.gz + $ cd celery-0.0.0 + $ python setup.py build + # python setup.py install + +The last command must be executed as a privileged user if +you aren't currently using a virtualenv. + +.. _celery-installing-from-git: + +Using the development version +----------------------------- + +With pip +~~~~~~~~ + +The Celery development version also requires the development +versions of ``kombu``, ``amqp``, ``billiard``, and ``vine``. + +You can install the latest snapshot of these using the following +pip commands: + +:: + + + $ pip install https://github.com/celery/celery/zipball/master#egg=celery + $ pip install https://github.com/celery/billiard/zipball/master#egg=billiard + $ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp + $ pip install https://github.com/celery/kombu/zipball/master#egg=kombu + $ pip install https://github.com/celery/vine/zipball/master#egg=vine + +With git +~~~~~~~~ + +Please see the Contributing section. + +.. _getting-help: + +Getting Help +============ + +.. _mailing-list: + +Mailing list +------------ + +For discussions about the usage, development, and future of Celery, +please join the `celery-users`_ mailing list. + +.. _`celery-users`: https://groups.google.com/group/celery-users/ + +.. _irc-channel: + +IRC +--- + +Come chat with us on IRC. The **#celery** channel is located at the +`Libera Chat`_ network. + +.. _`Libera Chat`: https://libera.chat/ + +.. _bug-tracker: + +Bug tracker +=========== + +If you have any suggestions, bug reports, or annoyances please report them +to our issue tracker at https://github.com/celery/celery/issues/ + +.. _wiki: + +Wiki +==== + +https://github.com/celery/celery/wiki + +Credits +======= + +.. _contributing-short: + +Contributors +------------ + +This project exists thanks to all the people who contribute. Development of +`celery` happens at GitHub: https://github.com/celery/celery + +You're highly encouraged to participate in the development +of `celery`. If you don't like GitHub (for some reason) you're welcome +to send regular patches. + +Be sure to also read the `Contributing to Celery`_ section in the +documentation. + +.. _`Contributing to Celery`: + http://docs.celeryproject.org/en/master/contributing.html + +|oc-contributors| + +.. |oc-contributors| image:: https://opencollective.com/celery/contributors.svg?width=890&button=false + :target: https://github.com/celery/celery/graphs/contributors + +Backers +------- + +Thank you to all our backers! 🙏 [`Become a backer`_] + +.. _`Become a backer`: https://opencollective.com/celery#backer + +|oc-backers| + +.. |oc-backers| image:: https://opencollective.com/celery/backers.svg?width=890 + :target: https://opencollective.com/celery#backers + +Sponsors +-------- + +Support this project by becoming a sponsor. Your logo will show up here with a +link to your website. [`Become a sponsor`_] + +.. _`Become a sponsor`: https://opencollective.com/celery#sponsor + +|oc-sponsors| + +.. |oc-sponsors| image:: https://opencollective.com/celery/sponsor/0/avatar.svg + :target: https://opencollective.com/celery/sponsor/0/website + +.. _license: + +License +======= + +This software is licensed under the `New BSD License`. See the ``LICENSE`` +file in the top distribution directory for the full license text. + +.. # vim: syntax=rst expandtab tabstop=4 shiftwidth=4 shiftround + +.. |build-status| image:: https://github.com/celery/celery/actions/workflows/python-package.yml/badge.svg + :alt: Build status + :target: https://github.com/celery/celery/actions/workflows/python-package.yml + +.. |coverage| image:: https://codecov.io/github/celery/celery/coverage.svg?branch=master + :target: https://codecov.io/github/celery/celery?branch=master + +.. |license| image:: https://img.shields.io/pypi/l/celery.svg + :alt: BSD License + :target: https://opensource.org/licenses/BSD-3-Clause + +.. |wheel| image:: https://img.shields.io/pypi/wheel/celery.svg + :alt: Celery can be installed via wheel + :target: https://pypi.org/project/celery/ + +.. |pyversion| image:: https://img.shields.io/pypi/pyversions/celery.svg + :alt: Supported Python versions. + :target: https://pypi.org/project/celery/ + +.. |pyimp| image:: https://img.shields.io/pypi/implementation/celery.svg + :alt: Supported Python implementations. + :target: https://pypi.org/project/celery/ + +.. |ocbackerbadge| image:: https://opencollective.com/celery/backers/badge.svg + :alt: Backers on Open Collective + :target: #backers + +.. |ocsponsorbadge| image:: https://opencollective.com/celery/sponsors/badge.svg + :alt: Sponsors on Open Collective + :target: #sponsors + +.. |downloads| image:: https://pepy.tech/badge/celery + :alt: Downloads + :target: https://pepy.tech/project/celery + + diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/SOURCES.txt b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/SOURCES.txt new file mode 100644 index 00000000000..6d8ea66caee --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/SOURCES.txt @@ -0,0 +1,652 @@ +CONTRIBUTORS.txt +Changelog.rst +LICENSE +MANIFEST.in +README.rst +TODO +pyproject.toml +setup.cfg +setup.py +celery/__init__.py +celery/__main__.py +celery/_state.py +celery/beat.py +celery/bootsteps.py +celery/canvas.py +celery/exceptions.py +celery/local.py +celery/platforms.py +celery/result.py +celery/schedules.py +celery/signals.py +celery/states.py +celery.egg-info/PKG-INFO +celery.egg-info/SOURCES.txt +celery.egg-info/dependency_links.txt +celery.egg-info/entry_points.txt +celery.egg-info/not-zip-safe +celery.egg-info/requires.txt +celery.egg-info/top_level.txt +celery/app/__init__.py +celery/app/amqp.py +celery/app/annotations.py +celery/app/autoretry.py +celery/app/backends.py +celery/app/base.py +celery/app/builtins.py +celery/app/control.py +celery/app/defaults.py +celery/app/events.py +celery/app/log.py +celery/app/registry.py +celery/app/routes.py +celery/app/task.py +celery/app/trace.py +celery/app/utils.py +celery/apps/__init__.py +celery/apps/beat.py +celery/apps/multi.py +celery/apps/worker.py +celery/backends/__init__.py +celery/backends/arangodb.py +celery/backends/asynchronous.py +celery/backends/azureblockblob.py +celery/backends/base.py +celery/backends/cache.py +celery/backends/cassandra.py +celery/backends/consul.py +celery/backends/cosmosdbsql.py +celery/backends/couchbase.py +celery/backends/couchdb.py +celery/backends/dynamodb.py +celery/backends/elasticsearch.py +celery/backends/filesystem.py +celery/backends/mongodb.py +celery/backends/redis.py +celery/backends/rpc.py +celery/backends/s3.py +celery/backends/database/__init__.py +celery/backends/database/models.py +celery/backends/database/session.py +celery/bin/__init__.py +celery/bin/amqp.py +celery/bin/base.py +celery/bin/beat.py +celery/bin/call.py +celery/bin/celery.py +celery/bin/control.py +celery/bin/events.py +celery/bin/graph.py +celery/bin/list.py +celery/bin/logtool.py +celery/bin/migrate.py +celery/bin/multi.py +celery/bin/purge.py +celery/bin/result.py +celery/bin/shell.py +celery/bin/upgrade.py +celery/bin/worker.py +celery/concurrency/__init__.py +celery/concurrency/asynpool.py +celery/concurrency/base.py +celery/concurrency/eventlet.py +celery/concurrency/gevent.py +celery/concurrency/prefork.py +celery/concurrency/solo.py +celery/concurrency/thread.py +celery/contrib/__init__.py +celery/contrib/abortable.py +celery/contrib/migrate.py +celery/contrib/pytest.py +celery/contrib/rdb.py +celery/contrib/sphinx.py +celery/contrib/testing/__init__.py +celery/contrib/testing/app.py +celery/contrib/testing/manager.py +celery/contrib/testing/mocks.py +celery/contrib/testing/tasks.py +celery/contrib/testing/worker.py +celery/events/__init__.py +celery/events/cursesmon.py +celery/events/dispatcher.py +celery/events/dumper.py +celery/events/event.py +celery/events/receiver.py +celery/events/snapshot.py +celery/events/state.py +celery/fixups/__init__.py +celery/fixups/django.py +celery/loaders/__init__.py +celery/loaders/app.py +celery/loaders/base.py +celery/loaders/default.py +celery/security/__init__.py +celery/security/certificate.py +celery/security/key.py +celery/security/serialization.py +celery/security/utils.py +celery/utils/__init__.py +celery/utils/abstract.py +celery/utils/collections.py +celery/utils/debug.py +celery/utils/deprecated.py +celery/utils/functional.py +celery/utils/graph.py +celery/utils/imports.py +celery/utils/iso8601.py +celery/utils/log.py +celery/utils/nodenames.py +celery/utils/objects.py +celery/utils/saferepr.py +celery/utils/serialization.py +celery/utils/sysinfo.py +celery/utils/term.py +celery/utils/text.py +celery/utils/threads.py +celery/utils/time.py +celery/utils/timer2.py +celery/utils/dispatch/__init__.py +celery/utils/dispatch/signal.py +celery/utils/static/__init__.py +celery/utils/static/celery_128.png +celery/worker/__init__.py +celery/worker/autoscale.py +celery/worker/components.py +celery/worker/control.py +celery/worker/heartbeat.py +celery/worker/loops.py +celery/worker/pidbox.py +celery/worker/request.py +celery/worker/state.py +celery/worker/strategy.py +celery/worker/worker.py +celery/worker/consumer/__init__.py +celery/worker/consumer/agent.py +celery/worker/consumer/connection.py +celery/worker/consumer/consumer.py +celery/worker/consumer/control.py +celery/worker/consumer/events.py +celery/worker/consumer/gossip.py +celery/worker/consumer/heart.py +celery/worker/consumer/mingle.py +celery/worker/consumer/tasks.py +docs/AUTHORS.txt +docs/Makefile +docs/THANKS +docs/changelog.rst +docs/community.rst +docs/conf.py +docs/configuration.html +docs/contributing.rst +docs/copyright.rst +docs/faq.rst +docs/glossary.rst +docs/index.rst +docs/make.bat +docs/spelling_wordlist.txt +docs/whatsnew-5.2.rst +docs/_ext/celerydocs.py +docs/_static/.keep +docs/_templates/sidebardonations.html +docs/django/first-steps-with-django.rst +docs/django/index.rst +docs/getting-started/first-steps-with-celery.rst +docs/getting-started/index.rst +docs/getting-started/introduction.rst +docs/getting-started/next-steps.rst +docs/getting-started/resources.rst +docs/getting-started/backends-and-brokers/index.rst +docs/getting-started/backends-and-brokers/rabbitmq.rst +docs/getting-started/backends-and-brokers/redis.rst +docs/getting-started/backends-and-brokers/sqs.rst +docs/history/changelog-1.0.rst +docs/history/changelog-2.0.rst +docs/history/changelog-2.1.rst +docs/history/changelog-2.2.rst +docs/history/changelog-2.3.rst +docs/history/changelog-2.4.rst +docs/history/changelog-2.5.rst +docs/history/changelog-3.0.rst +docs/history/changelog-3.1.rst +docs/history/changelog-4.0.rst +docs/history/changelog-4.1.rst +docs/history/changelog-4.2.rst +docs/history/changelog-4.3.rst +docs/history/changelog-4.4.rst +docs/history/changelog-5.0.rst +docs/history/changelog-5.1.rst +docs/history/index.rst +docs/history/whatsnew-2.5.rst +docs/history/whatsnew-3.0.rst +docs/history/whatsnew-3.1.rst +docs/history/whatsnew-4.0.rst +docs/history/whatsnew-4.1.rst +docs/history/whatsnew-4.2.rst +docs/history/whatsnew-4.3.rst +docs/history/whatsnew-4.4.rst +docs/history/whatsnew-5.0.rst +docs/history/whatsnew-5.1.rst +docs/images/celery-banner-small.png +docs/images/celery-banner.png +docs/images/celery_128.png +docs/images/celery_512.png +docs/images/celeryevshotsm.jpg +docs/images/dashboard.png +docs/images/favicon.ico +docs/images/monitor.png +docs/images/result_graph.png +docs/images/worker_graph_full.png +docs/includes/installation.txt +docs/includes/introduction.txt +docs/includes/resources.txt +docs/internals/app-overview.rst +docs/internals/deprecation.rst +docs/internals/guide.rst +docs/internals/index.rst +docs/internals/protocol.rst +docs/internals/worker.rst +docs/internals/reference/celery._state.rst +docs/internals/reference/celery.app.annotations.rst +docs/internals/reference/celery.app.routes.rst +docs/internals/reference/celery.app.trace.rst +docs/internals/reference/celery.backends.arangodb.rst +docs/internals/reference/celery.backends.asynchronous.rst +docs/internals/reference/celery.backends.azureblockblob.rst +docs/internals/reference/celery.backends.base.rst +docs/internals/reference/celery.backends.cache.rst +docs/internals/reference/celery.backends.cassandra.rst +docs/internals/reference/celery.backends.consul.rst +docs/internals/reference/celery.backends.cosmosdbsql.rst +docs/internals/reference/celery.backends.couchbase.rst +docs/internals/reference/celery.backends.couchdb.rst +docs/internals/reference/celery.backends.database.models.rst +docs/internals/reference/celery.backends.database.rst +docs/internals/reference/celery.backends.database.session.rst +docs/internals/reference/celery.backends.dynamodb.rst +docs/internals/reference/celery.backends.elasticsearch.rst +docs/internals/reference/celery.backends.filesystem.rst +docs/internals/reference/celery.backends.mongodb.rst +docs/internals/reference/celery.backends.redis.rst +docs/internals/reference/celery.backends.rpc.rst +docs/internals/reference/celery.backends.rst +docs/internals/reference/celery.backends.s3.rst +docs/internals/reference/celery.concurrency.base.rst +docs/internals/reference/celery.concurrency.eventlet.rst +docs/internals/reference/celery.concurrency.gevent.rst +docs/internals/reference/celery.concurrency.prefork.rst +docs/internals/reference/celery.concurrency.rst +docs/internals/reference/celery.concurrency.solo.rst +docs/internals/reference/celery.concurrency.thread.rst +docs/internals/reference/celery.events.cursesmon.rst +docs/internals/reference/celery.events.dumper.rst +docs/internals/reference/celery.events.snapshot.rst +docs/internals/reference/celery.platforms.rst +docs/internals/reference/celery.security.certificate.rst +docs/internals/reference/celery.security.key.rst +docs/internals/reference/celery.security.serialization.rst +docs/internals/reference/celery.security.utils.rst +docs/internals/reference/celery.utils.abstract.rst +docs/internals/reference/celery.utils.collections.rst +docs/internals/reference/celery.utils.deprecated.rst +docs/internals/reference/celery.utils.dispatch.rst +docs/internals/reference/celery.utils.dispatch.signal.rst +docs/internals/reference/celery.utils.functional.rst +docs/internals/reference/celery.utils.graph.rst +docs/internals/reference/celery.utils.imports.rst +docs/internals/reference/celery.utils.iso8601.rst +docs/internals/reference/celery.utils.log.rst +docs/internals/reference/celery.utils.nodenames.rst +docs/internals/reference/celery.utils.objects.rst +docs/internals/reference/celery.utils.rst +docs/internals/reference/celery.utils.saferepr.rst +docs/internals/reference/celery.utils.serialization.rst +docs/internals/reference/celery.utils.sysinfo.rst +docs/internals/reference/celery.utils.term.rst +docs/internals/reference/celery.utils.text.rst +docs/internals/reference/celery.utils.threads.rst +docs/internals/reference/celery.utils.time.rst +docs/internals/reference/celery.utils.timer2.rst +docs/internals/reference/celery.worker.autoscale.rst +docs/internals/reference/celery.worker.components.rst +docs/internals/reference/celery.worker.control.rst +docs/internals/reference/celery.worker.heartbeat.rst +docs/internals/reference/celery.worker.loops.rst +docs/internals/reference/celery.worker.pidbox.rst +docs/internals/reference/index.rst +docs/reference/celery.app.amqp.rst +docs/reference/celery.app.autoretry.rst +docs/reference/celery.app.backends.rst +docs/reference/celery.app.builtins.rst +docs/reference/celery.app.control.rst +docs/reference/celery.app.defaults.rst +docs/reference/celery.app.events.rst +docs/reference/celery.app.log.rst +docs/reference/celery.app.registry.rst +docs/reference/celery.app.rst +docs/reference/celery.app.task.rst +docs/reference/celery.app.utils.rst +docs/reference/celery.apps.beat.rst +docs/reference/celery.apps.multi.rst +docs/reference/celery.apps.worker.rst +docs/reference/celery.beat.rst +docs/reference/celery.bin.base.rst +docs/reference/celery.bin.beat.rst +docs/reference/celery.bin.call.rst +docs/reference/celery.bin.celery.rst +docs/reference/celery.bin.control.rst +docs/reference/celery.bin.events.rst +docs/reference/celery.bin.graph.rst +docs/reference/celery.bin.list.rst +docs/reference/celery.bin.logtool.rst +docs/reference/celery.bin.migrate.rst +docs/reference/celery.bin.multi.rst +docs/reference/celery.bin.purge.rst +docs/reference/celery.bin.result.rst +docs/reference/celery.bin.shell.rst +docs/reference/celery.bin.upgrade.rst +docs/reference/celery.bin.worker.rst +docs/reference/celery.bootsteps.rst +docs/reference/celery.contrib.abortable.rst +docs/reference/celery.contrib.migrate.rst +docs/reference/celery.contrib.pytest.rst +docs/reference/celery.contrib.rdb.rst +docs/reference/celery.contrib.sphinx.rst +docs/reference/celery.contrib.testing.app.rst +docs/reference/celery.contrib.testing.manager.rst +docs/reference/celery.contrib.testing.mocks.rst +docs/reference/celery.contrib.testing.worker.rst +docs/reference/celery.events.dispatcher.rst +docs/reference/celery.events.event.rst +docs/reference/celery.events.receiver.rst +docs/reference/celery.events.rst +docs/reference/celery.events.state.rst +docs/reference/celery.exceptions.rst +docs/reference/celery.loaders.app.rst +docs/reference/celery.loaders.base.rst +docs/reference/celery.loaders.default.rst +docs/reference/celery.loaders.rst +docs/reference/celery.result.rst +docs/reference/celery.rst +docs/reference/celery.schedules.rst +docs/reference/celery.security.rst +docs/reference/celery.signals.rst +docs/reference/celery.states.rst +docs/reference/celery.utils.debug.rst +docs/reference/celery.worker.consumer.agent.rst +docs/reference/celery.worker.consumer.connection.rst +docs/reference/celery.worker.consumer.consumer.rst +docs/reference/celery.worker.consumer.control.rst +docs/reference/celery.worker.consumer.events.rst +docs/reference/celery.worker.consumer.gossip.rst +docs/reference/celery.worker.consumer.heart.rst +docs/reference/celery.worker.consumer.mingle.rst +docs/reference/celery.worker.consumer.rst +docs/reference/celery.worker.consumer.tasks.rst +docs/reference/celery.worker.request.rst +docs/reference/celery.worker.rst +docs/reference/celery.worker.state.rst +docs/reference/celery.worker.strategy.rst +docs/reference/celery.worker.worker.rst +docs/reference/cli.rst +docs/reference/index.rst +docs/sec/CELERYSA-0001.txt +docs/sec/CELERYSA-0002.txt +docs/sec/CELERYSA-0003.txt +docs/templates/readme.txt +docs/tutorials/daemonizing.html +docs/tutorials/debugging.html +docs/tutorials/index.rst +docs/tutorials/task-cookbook.rst +docs/userguide/application.rst +docs/userguide/calling.rst +docs/userguide/canvas.rst +docs/userguide/configuration.rst +docs/userguide/daemonizing.rst +docs/userguide/debugging.rst +docs/userguide/extending.rst +docs/userguide/index.rst +docs/userguide/monitoring.rst +docs/userguide/optimizing.rst +docs/userguide/periodic-tasks.rst +docs/userguide/routing.rst +docs/userguide/security.rst +docs/userguide/signals.rst +docs/userguide/sphinx.rst +docs/userguide/tasks.rst +docs/userguide/testing.rst +docs/userguide/workers.rst +docs/userguide/concurrency/eventlet.rst +docs/userguide/concurrency/index.rst +examples/README.rst +examples/app/myapp.py +examples/celery_http_gateway/README.rst +examples/celery_http_gateway/__init__.py +examples/celery_http_gateway/manage.py +examples/celery_http_gateway/settings.py +examples/celery_http_gateway/tasks.py +examples/celery_http_gateway/urls.py +examples/django/README.rst +examples/django/manage.py +examples/django/requirements.txt +examples/django/demoapp/__init__.py +examples/django/demoapp/models.py +examples/django/demoapp/tasks.py +examples/django/demoapp/views.py +examples/django/demoapp/migrations/0001_initial.py +examples/django/demoapp/migrations/__init__.py +examples/django/proj/__init__.py +examples/django/proj/celery.py +examples/django/proj/settings.py +examples/django/proj/urls.py +examples/django/proj/wsgi.py +examples/eventlet/README.rst +examples/eventlet/bulk_task_producer.py +examples/eventlet/celeryconfig.py +examples/eventlet/tasks.py +examples/eventlet/webcrawler.py +examples/gevent/celeryconfig.py +examples/gevent/tasks.py +examples/next-steps/setup.py +examples/next-steps/proj/__init__.py +examples/next-steps/proj/celery.py +examples/next-steps/proj/tasks.py +examples/periodic-tasks/myapp.py +examples/resultgraph/tasks.py +examples/security/mysecureapp.py +examples/security/ssl/worker.key +examples/security/ssl/worker.pem +examples/tutorial/tasks.py +extra/bash-completion/celery.bash +extra/generic-init.d/celerybeat +extra/generic-init.d/celeryd +extra/macOS/org.celeryq.beat.plist +extra/macOS/org.celeryq.worker.plist +extra/supervisord/celery.sh +extra/supervisord/celerybeat.conf +extra/supervisord/celeryd.conf +extra/supervisord/supervisord.conf +extra/systemd/celery.conf +extra/systemd/celery.service +extra/systemd/celery.tmpfiles +extra/systemd/celerybeat.service +extra/zsh-completion/celery.zsh +requirements/README.rst +requirements/default.txt +requirements/dev.txt +requirements/docs.txt +requirements/pkgutils.txt +requirements/security.txt +requirements/test-ci-base.txt +requirements/test-ci-default.txt +requirements/test-integration.txt +requirements/test-pypy3.txt +requirements/test.txt +requirements/deps/mock.txt +requirements/extras/arangodb.txt +requirements/extras/auth.txt +requirements/extras/azureblockblob.txt +requirements/extras/brotli.txt +requirements/extras/cassandra.txt +requirements/extras/consul.txt +requirements/extras/cosmosdbsql.txt +requirements/extras/couchbase.txt +requirements/extras/couchdb.txt +requirements/extras/django.txt +requirements/extras/dynamodb.txt +requirements/extras/elasticsearch.txt +requirements/extras/eventlet.txt +requirements/extras/gevent.txt +requirements/extras/librabbitmq.txt +requirements/extras/memcache.txt +requirements/extras/mongodb.txt +requirements/extras/msgpack.txt +requirements/extras/pymemcache.txt +requirements/extras/pyro.txt +requirements/extras/pytest.txt +requirements/extras/redis.txt +requirements/extras/s3.txt +requirements/extras/slmq.txt +requirements/extras/solar.txt +requirements/extras/sphinxautobuild.txt +requirements/extras/sqlalchemy.txt +requirements/extras/sqs.txt +requirements/extras/tblib.txt +requirements/extras/thread.txt +requirements/extras/yaml.txt +requirements/extras/zeromq.txt +requirements/extras/zookeeper.txt +requirements/extras/zstd.txt +t/__init__.py +t/skip.py +t/benchmarks/bench_worker.py +t/integration/__init__.py +t/integration/conftest.py +t/integration/tasks.py +t/integration/test_backend.py +t/integration/test_canvas.py +t/integration/test_inspect.py +t/integration/test_security.py +t/integration/test_tasks.py +t/unit/__init__.py +t/unit/conftest.py +t/unit/test_canvas.py +t/unit/app/__init__.py +t/unit/app/test_amqp.py +t/unit/app/test_annotations.py +t/unit/app/test_app.py +t/unit/app/test_backends.py +t/unit/app/test_beat.py +t/unit/app/test_builtins.py +t/unit/app/test_celery.py +t/unit/app/test_control.py +t/unit/app/test_defaults.py +t/unit/app/test_exceptions.py +t/unit/app/test_loaders.py +t/unit/app/test_log.py +t/unit/app/test_registry.py +t/unit/app/test_routes.py +t/unit/app/test_schedules.py +t/unit/app/test_utils.py +t/unit/apps/__init__.py +t/unit/apps/test_multi.py +t/unit/backends/__init__.py +t/unit/backends/test_arangodb.py +t/unit/backends/test_asynchronous.py +t/unit/backends/test_azureblockblob.py +t/unit/backends/test_base.py +t/unit/backends/test_cache.py +t/unit/backends/test_cassandra.py +t/unit/backends/test_consul.py +t/unit/backends/test_cosmosdbsql.py +t/unit/backends/test_couchbase.py +t/unit/backends/test_couchdb.py +t/unit/backends/test_database.py +t/unit/backends/test_dynamodb.py +t/unit/backends/test_elasticsearch.py +t/unit/backends/test_filesystem.py +t/unit/backends/test_mongodb.py +t/unit/backends/test_redis.py +t/unit/backends/test_rpc.py +t/unit/backends/test_s3.py +t/unit/bin/__init__.py +t/unit/bin/celery.py +t/unit/bin/test_multi.py +t/unit/bin/proj/__init__.py +t/unit/bin/proj/app.py +t/unit/bin/proj/app2.py +t/unit/concurrency/__init__.py +t/unit/concurrency/test_concurrency.py +t/unit/concurrency/test_eventlet.py +t/unit/concurrency/test_gevent.py +t/unit/concurrency/test_pool.py +t/unit/concurrency/test_prefork.py +t/unit/concurrency/test_solo.py +t/unit/concurrency/test_thread.py +t/unit/contrib/__init__.py +t/unit/contrib/test_abortable.py +t/unit/contrib/test_migrate.py +t/unit/contrib/test_pytest.py +t/unit/contrib/test_rdb.py +t/unit/contrib/test_sphinx.py +t/unit/contrib/proj/__init__.py +t/unit/contrib/proj/conf.py +t/unit/contrib/proj/contents.rst +t/unit/contrib/proj/foo.py +t/unit/contrib/proj/xyzzy.py +t/unit/events/__init__.py +t/unit/events/test_cursesmon.py +t/unit/events/test_events.py +t/unit/events/test_snapshot.py +t/unit/events/test_state.py +t/unit/fixups/__init__.py +t/unit/fixups/test_django.py +t/unit/security/__init__.py +t/unit/security/case.py +t/unit/security/test_certificate.py +t/unit/security/test_key.py +t/unit/security/test_security.py +t/unit/security/test_serialization.py +t/unit/tasks/__init__.py +t/unit/tasks/test_canvas.py +t/unit/tasks/test_chord.py +t/unit/tasks/test_context.py +t/unit/tasks/test_result.py +t/unit/tasks/test_states.py +t/unit/tasks/test_tasks.py +t/unit/tasks/test_trace.py +t/unit/tasks/unit_tasks.py +t/unit/utils/__init__.py +t/unit/utils/test_collections.py +t/unit/utils/test_debug.py +t/unit/utils/test_deprecated.py +t/unit/utils/test_dispatcher.py +t/unit/utils/test_functional.py +t/unit/utils/test_graph.py +t/unit/utils/test_imports.py +t/unit/utils/test_local.py +t/unit/utils/test_nodenames.py +t/unit/utils/test_objects.py +t/unit/utils/test_pickle.py +t/unit/utils/test_platforms.py +t/unit/utils/test_saferepr.py +t/unit/utils/test_serialization.py +t/unit/utils/test_sysinfo.py +t/unit/utils/test_term.py +t/unit/utils/test_text.py +t/unit/utils/test_threads.py +t/unit/utils/test_time.py +t/unit/utils/test_timer2.py +t/unit/utils/test_utils.py +t/unit/worker/__init__.py +t/unit/worker/test_autoscale.py +t/unit/worker/test_bootsteps.py +t/unit/worker/test_components.py +t/unit/worker/test_consumer.py +t/unit/worker/test_control.py +t/unit/worker/test_heartbeat.py +t/unit/worker/test_loops.py +t/unit/worker/test_request.py +t/unit/worker/test_revoke.py +t/unit/worker/test_state.py +t/unit/worker/test_strategy.py +t/unit/worker/test_worker.py \ No newline at end of file diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/dependency_links.txt b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/dependency_links.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/entry_points.txt b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/entry_points.txt new file mode 100644 index 00000000000..fb04d7b6df3 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +celery = celery.__main__:main + diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/not-zip-safe b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/not-zip-safe new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/requires.txt b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/requires.txt new file mode 100644 index 00000000000..c622e966d72 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/requires.txt @@ -0,0 +1,122 @@ +pytz>=2021.3 +billiard<4.0,>=3.6.4.0 +kombu<6.0,>=5.2.3 +vine<6.0,>=5.0.0 +click<9.0,>=8.0.3 +click-didyoumean>=0.0.3 +click-repl>=0.2.0 +click-plugins>=1.1.1 + +[:python_version < "3.8"] +importlib-metadata>=1.4.0 + +[arangodb] +pyArango>=1.3.2 + +[auth] +cryptography + +[azureblockblob] +azure-storage-blob==12.9.0 + +[brotli] + +[brotli:platform_python_implementation == "CPython"] +brotli>=1.0.0 + +[brotli:platform_python_implementation == "PyPy"] +brotlipy>=0.7.0 + +[cassandra] +cassandra-driver<3.21.0 + +[consul] +python-consul2 + +[cosmosdbsql] +pydocumentdb==2.3.2 + +[couchbase] + +[couchbase:platform_python_implementation != "PyPy" and (platform_system != "Windows" or python_version < "3.10")] +couchbase>=3.0.0 + +[couchdb] +pycouchdb + +[django] +Django>=1.11 + +[dynamodb] +boto3>=1.9.178 + +[elasticsearch] +elasticsearch + +[eventlet] + +[eventlet:python_version < "3.10"] +eventlet>=0.32.0 + +[gevent] +gevent>=1.5.0 + +[librabbitmq] +librabbitmq>=1.5.0 + +[memcache] + +[memcache:platform_system != "Windows"] +pylibmc + +[mongodb] +pymongo[srv]>=3.11.1 + +[msgpack] +msgpack + +[pymemcache] +python-memcached + +[pyro] +pyro4 + +[pytest] +pytest-celery + +[redis] +redis!=4.0.0,!=4.0.1,>=3.4.1 + +[s3] +boto3>=1.9.125 + +[slmq] +softlayer_messaging>=1.0.3 + +[solar] + +[solar:platform_python_implementation != "PyPy"] +ephem + +[sqlalchemy] +sqlalchemy + +[sqs] +kombu[sqs] + +[tblib] + +[tblib:python_version < "3.8.0"] +tblib>=1.3.0 + +[tblib:python_version >= "3.8.0"] +tblib>=1.5.0 + +[yaml] +PyYAML>=3.10 + +[zookeeper] +kazoo>=1.3.1 + +[zstd] +zstandard diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/top_level.txt b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/top_level.txt new file mode 100644 index 00000000000..74f9e8fefb0 --- /dev/null +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery/celery.egg-info/top_level.txt @@ -0,0 +1 @@ +celery diff --git a/tests/packagedcode/data/win_reg/get_installed_packages_docker/expected-results.json b/tests/packagedcode/data/win_reg/get_installed_packages_docker/expected-results.json index 935f6d47159..05339f3d967 100644 --- a/tests/packagedcode/data/win_reg/get_installed_packages_docker/expected-results.json +++ b/tests/packagedcode/data/win_reg/get_installed_packages_docker/expected-results.json @@ -1,30 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json-pp": "", - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 7 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/test_pypi.py b/tests/packagedcode/test_pypi.py index ed7c16f3e45..c546612b317 100644 --- a/tests/packagedcode/test_pypi.py +++ b/tests/packagedcode/test_pypi.py @@ -11,6 +11,7 @@ from unittest.case import skipIf import pytest +from commoncode.resource import VirtualCodebase from commoncode.system import on_windows from packagedcode import pypi @@ -263,6 +264,22 @@ def test_can_parse_solo_metadata_from_command_line(self): 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_parse_metadata_prefer_pkg_info_from_egg_info_from_command_line(self): + test_file = self.get_test_loc('pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery') + expected_file = self.get_test_loc('pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json', must_exist=False) + 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) + + # Really check to see that we are only using the PKG-INFO from + # `celery/celery.egg-info/PKG-INFO` + vc = VirtualCodebase(location=result_file) + for dep in vc.attributes.dependencies: + self.assertEqual(dep['datafile_path'], 'celery/celery.egg-info/PKG-INFO') + for pkg in vc.attributes.packages: + for path in pkg['datafile_paths']: + self.assertEqual(path, 'celery/celery.egg-info/PKG-INFO') + class TestPipRequirementsFileHandler(PackageTester): test_data_dir = os.path.join(os.path.dirname(__file__), 'data') From 9433eec551e22b4eee33f5da125dccff67e583d4 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 6 Sep 2022 10:42:10 -0700 Subject: [PATCH 11/54] Mark extra_requires as optional #3083 * Ensure extracted_requirement contains dependency name * Update test expectations Signed-off-by: Jono Yang --- src/packagedcode/pypi.py | 31 +- .../emails-threshold.expected.json | 28 -- .../plugin_email_url/emails.expected.json | 27 -- .../urls-threshold.expected.json | 28 -- .../data/plugin_email_url/urls.expected.json | 27 -- .../filtered-expected.json | 31 -- .../filtered-expected2.json | 31 -- .../filtered-expected3.json | 31 -- .../authors.expected.json | 29 -- .../holders.expected.json | 29 -- .../data/csv/livescan/expected.csv | 6 +- .../formattedcode/data/cyclonedx/expected.xml | 6 +- .../data/json/simple-expected.jsonlines | 6 +- .../data/yaml/simple-expected.yaml | 6 +- .../data/yaml/tree/expected.yaml | 6 +- .../license-expression/scan.expected.json | 27 -- .../license-ref-see-copying.expected.json | 30 -- .../license_reference/scan-ref.expected.json | 30 -- .../license_reference/scan-wref.expected.json | 30 -- .../plugin_license/license_url.expected.json | 28 -- .../sqlite/sqlite.expected.json | 27 -- .../text/scan-diag.expected.json | 29 -- .../plugin_license/text/scan.expected.json | 28 -- .../text_long_lines/scan-diag.expected.json | 29 -- .../text_long_lines/scan.expected.json | 28 -- .../plugin_license_text/scan.expected.json | 29 -- .../scan.expected.json | 28 -- ...instance-expected-with-test-manifests.json | 318 +++++++++++++++++- .../data/plugin/python-package-expected.json | 12 +- ...commoncode-21.5.12-py3.9.egg-expected.json | 10 +- .../scancode_toolkit.egg-info-expected.json | 18 +- .../pypi/metadata/v20/PKG-INFO-expected.json | 6 +- .../basic/output.expected.json | 6 +- .../comments_and_empties/output.expected.json | 2 +- .../complex/output.expected.json | 4 +- .../requirements_txt/dev/output.expected.json | 6 +- .../double_extras/output.expected.json | 4 +- .../eol_comment/output.expected.json | 2 +- .../invalid_spec/output.expected.json | 2 +- .../many_specs/output.expected.json | 2 +- .../mixed/output.expected.json | 6 +- .../pinned/output.expected.json | 6 +- .../repeated/output.expected.json | 4 +- .../requirements_in/output.expected.json | 4 +- .../simple/output.expected.json | 4 +- .../pip-22.0.4-pypi-package-expected.json | 14 +- .../PyJPString-0.0.3-subdir-expected.json | 4 +- .../celery-expected.json | 216 ++++++------ .../daglib_wheel_extracted-expected.json | 8 +- .../Jinja2-2.10.dist-info-expected.json | 2 +- .../urllib3-1.26.4.dist-info-expected.json | 14 +- ...plugincode-21.1.21.dist-info-expected.json | 10 +- ...lies_key_files-details.expected.json-lines | 6 +- 53 files changed, 533 insertions(+), 822 deletions(-) diff --git a/src/packagedcode/pypi.py b/src/packagedcode/pypi.py index 34b20d33c01..e64cd490520 100644 --- a/src/packagedcode/pypi.py +++ b/src/packagedcode/pypi.py @@ -768,14 +768,16 @@ def parse(cls, location): name="python", ) resolved_purl = get_resolved_purl(purl=purl, specifiers=SpecifierSet(python_requires_specifier)) - dependent_packages.append(models.DependentPackage( - purl=str(resolved_purl.purl), - scope=scope, - is_runtime=True, - is_optional=False, - is_resolved=resolved_purl.is_resolved, - extracted_requirement=f"python_requires{python_requires_specifier}", - )) + dependent_packages.append( + models.DependentPackage( + purl=str(resolved_purl.purl), + scope=scope, + is_runtime=True, + is_optional=False, + is_resolved=resolved_purl.is_resolved, + extracted_requirement=f"python_requires{python_requires_specifier}", + ) + ) if section.name == "options.extras_require": for sub_section in section: @@ -975,11 +977,7 @@ def get_requirements_txt_dependencies(location, include_nested=False): purl = None purl = purl and purl.to_string() or None - - if req.is_editable: - requirement = req.dumps() - else: - requirement = req.dumps(with_name=False) + requirement = req.dumps() if location.endswith( ( @@ -1355,15 +1353,16 @@ def get_requires_dependencies(requires, default_scope='install'): is_resolved = True purl = purl._replace(version=specifier.version) - # we use the extra as scope if avialble - scope = get_extra(req.marker) or default_scope + # we use the extra as scope if available + extra = get_extra(req.marker) + scope = extra or default_scope dependent_packages.append( models.DependentPackage( purl=purl.to_string(), scope=scope, is_runtime=True, - is_optional=False, + is_optional=True if bool(extra) else False, is_resolved=is_resolved, extracted_requirement=str(req), )) diff --git a/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json b/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json index 8835394f29d..c5b021e9eb1 100644 --- a/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json +++ b/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json @@ -1,32 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--email": true, - "--json": "", - "--max-email": "2", - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "3w-xxxx.c", diff --git a/tests/cluecode/data/plugin_email_url/emails.expected.json b/tests/cluecode/data/plugin_email_url/emails.expected.json index b96a27cd804..36b0033b788 100644 --- a/tests/cluecode/data/plugin_email_url/emails.expected.json +++ b/tests/cluecode/data/plugin_email_url/emails.expected.json @@ -1,31 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--email": true, - "--json": "", - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "3w-xxxx.c", diff --git a/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json b/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json index 33d2735b640..97de3048fff 100644 --- a/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json +++ b/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json @@ -1,32 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--max-url": "2", - "--strip-root": true, - "--url": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "3w-xxxx.c", diff --git a/tests/cluecode/data/plugin_email_url/urls.expected.json b/tests/cluecode/data/plugin_email_url/urls.expected.json index a45efb913d8..a729f46b21a 100644 --- a/tests/cluecode/data/plugin_email_url/urls.expected.json +++ b/tests/cluecode/data/plugin_email_url/urls.expected.json @@ -1,31 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--strip-root": true, - "--url": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "3w-xxxx.c", diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected.json index 825bd70a9d6..96b86771344 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected.json @@ -1,35 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--copyright": true, - "--email": true, - "--filter-clues": true, - "--info": true, - "--json": "", - "--license": true, - "--url": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "files": [ { "path": "LICENSE", diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json index a669463fca3..75a63a32e50 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json @@ -1,35 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--copyright": true, - "--email": true, - "--filter-clues": true, - "--info": true, - "--json": "", - "--license": true, - "--url": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "files": [ { "path": "LICENSE2", diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json index cac76d43e13..c61dc0a5777 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json @@ -1,35 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--copyright": true, - "--email": true, - "--filter-clues": true, - "--info": true, - "--json": "", - "--license": true, - "--url": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "files": [ { "path": "LICENSE3", diff --git a/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json b/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json index ee56e378206..eece5f5db84 100644 --- a/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json +++ b/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json @@ -1,33 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--copyright": true, - "--ignore-author": [ - "Berkeley" - ], - "--json-pp": "" - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 5 - } - } - ], "files": [ { "path": "basic.tgz", diff --git a/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json b/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json index 765bd0c238e..eece5f5db84 100644 --- a/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json +++ b/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json @@ -1,33 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--copyright": true, - "--ignore-copyright-holder": [ - "Regents" - ], - "--json-pp": "" - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 5 - } - } - ], "files": [ { "path": "basic.tgz", diff --git a/tests/formattedcode/data/csv/livescan/expected.csv b/tests/formattedcode/data/csv/livescan/expected.csv index 8fdac21067a..8ca8626985c 100644 --- a/tests/formattedcode/data/csv/livescan/expected.csv +++ b/tests/formattedcode/data/csv/livescan/expected.csv @@ -1,5 +1,5 @@ path,type,name,base_name,extension,size,date,sha1,md5,sha256,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,percentage_of_license_text,files_count,dirs_count,size_count,scan_errors,license_expression,license__key,license__score,license__name,license__short_name,license__category,license__is_exception,license__is_unknown,license__owner,license__homepage_url,license__text_url,license__reference_url,license__scancode_text_url,license__scancode_data_url,license__spdx_license_key,license__spdx_url,start_line,end_line,matched_rule__identifier,matched_rule__license_expression,matched_rule__licenses,matched_rule__referenced_filenames,matched_rule__is_license_text,matched_rule__is_license_notice,matched_rule__is_license_reference,matched_rule__is_license_tag,matched_rule__is_license_intro,matched_rule__has_unknown,matched_rule__matcher,matched_rule__rule_length,matched_rule__matched_length,matched_rule__match_coverage,matched_rule__rule_relevance,copyright,holder,email,url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath,package__primary_language,package__description,package__release_date,package__homepage_url,package__download_url,package__size,package__sha1,package__md5,package__sha256,package__sha512,package__bug_tracking_url,package__code_view_url,package__vcs_url,package__copyright,package__license_expression,package__declared_license,package__notice_text,package__file_references,package__extra_data,package__repository_homepage_url,package__repository_download_url,package__api_data_url,package__datasource_id,package__purl -json2csv.rb,file,json2csv.rb,json2csv,.rb,912,2022-02-07,1236469a06a2bacbdd8e172ad718482af5b0a936,1307c281e0b153202e291b217eab85d5,12ba215313981dbe810d9ed696b7cc753d97adfcc26eba1e13f941dc7506aa4e,text/x-script.python,"Python script, ASCII text executable",Ruby,False,True,False,False,True,True,62.04,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +json2csv.rb,file,json2csv.rb,json2csv,.rb,912,2021-11-14,1236469a06a2bacbdd8e172ad718482af5b0a936,1307c281e0b153202e291b217eab85d5,12ba215313981dbe810d9ed696b7cc753d97adfcc26eba1e13f941dc7506aa4e,text/x-script.python,"Python script, ASCII text executable",Ruby,False,True,False,False,True,True,62.04,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,100.00,Apache License 2.0,Apache 2.0,Permissive,False,False,Apache Software Foundation,http://www.apache.org/licenses/,http://www.apache.org/licenses/LICENSE-2.0,https://scancode-licensedb.aboutcode.org/apache-2.0,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml,Apache-2.0,https://spdx.org/licenses/Apache-2.0,5,13,apache-2.0_7.RULE,apache-2.0,apache-2.0,,,True,,,,,2-aho,85,85,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,3,,,,,,,,,,,,,,,,Copyright (c) 2017 nexB Inc. and others,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -7,10 +7,10 @@ json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,3,,,,,,,,,,,,,,,,,nexB Inc. json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4,,,,,,,,,,,,,,,,,,,http://nexb.com/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4,,,,,,,,,,,,,,,,,,,https://github.com/nexB/scancode-toolkit/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,8,,,,,,,,,,,,,,,,,,,http://www.apache.org/licenses/LICENSE-2.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -license,file,license,license,,679,2022-02-07,75c5490a718ddd45e40e0cc7ce0c756abc373123,b965a762efb9421cf1bf4405f336e278,a34098a43e5677495f59dff825a3f9bc0f2b0261d75feb2356919f4c3ce049ab,text/plain,ASCII text,,False,True,False,False,False,False,100.0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +license,file,license,license,,679,2021-11-14,75c5490a718ddd45e40e0cc7ce0c756abc373123,b965a762efb9421cf1bf4405f336e278,a34098a43e5677495f59dff825a3f9bc0f2b0261d75feb2356919f4c3ce049ab,text/plain,ASCII text,,False,True,False,False,False,False,100.0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, license,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, license,,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,100.00,GNU General Public License 2.0 or later,GPL 2.0 or later,Copyleft,False,False,Free Software Foundation (FSF),http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,https://scancode-licensedb.aboutcode.org/gpl-2.0-plus,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml,GPL-2.0-or-later,https://spdx.org/licenses/GPL-2.0-or-later,1,12,gpl-2.0-plus_420.RULE,gpl-2.0-plus,gpl-2.0-plus,,,True,,,,,1-hash,113,113,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -package.json,file,package.json,package,.json,2200,2022-02-07,918376afce796ef90eeda1d6695f2289c90491ac,1f66239a9b850c5e60a9382dbe2162d2,29f6068a1b6c7d06f115a5edc4ed8558edde42c6bbf0145ed77cf1108a0dd529,application/json,JSON data,,False,True,False,False,False,False,45.72,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +package.json,file,package.json,package,.json,2200,2021-11-14,918376afce796ef90eeda1d6695f2289c90491ac,1f66239a9b850c5e60a9382dbe2162d2,29f6068a1b6c7d06f115a5edc4ed8558edde42c6bbf0145ed77cf1108a0dd529,application/json,JSON data,,False,True,False,False,False,False,45.72,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,mit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,mit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,,mit,100.00,MIT License,MIT License,Permissive,False,False,MIT,http://opensource.org/licenses/mit-license.php,http://opensource.org/licenses/mit-license.php,https://scancode-licensedb.aboutcode.org/mit,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml,MIT,https://spdx.org/licenses/MIT,24,24,mit_27.RULE,mit,mit,,,,True,,,,2-aho,3,3,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/tests/formattedcode/data/cyclonedx/expected.xml b/tests/formattedcode/data/cyclonedx/expected.xml index 06b983a2751..b922553221b 100644 --- a/tests/formattedcode/data/cyclonedx/expected.xml +++ b/tests/formattedcode/data/cyclonedx/expected.xml @@ -1,12 +1,12 @@ - + - 2022-08-01T13:10:26Z + 2022-09-06T19:23:53Z AboutCode.org scancode-toolkit - 31.0.0rc3 + 31.1.1 diff --git a/tests/formattedcode/data/json/simple-expected.jsonlines b/tests/formattedcode/data/json/simple-expected.jsonlines index 503f0b063b4..8d7df0aa90f 100644 --- a/tests/formattedcode/data/json/simple-expected.jsonlines +++ b/tests/formattedcode/data/json/simple-expected.jsonlines @@ -17,9 +17,9 @@ "system_environment": { "operating_system": "linux", "cpu_architecture": "64", - "platform": "Linux-4.15.0-189-generic-x86_64-with-debian-stretch-sid", - "platform_version": "#200~16.04.1-Ubuntu SMP Fri Jun 24 05:32:48 UTC 2022", - "python_version": "3.7.9 (default, Dec 6 2020, 11:48:06) \n[GCC 5.4.0 20160609]" + "platform": "Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.35", + "platform_version": "#1 SMP Wed Mar 2 00:30:59 UTC 2022", + "python_version": "3.10.5 (main, Jul 30 2022, 03:32:13) [GCC 11.2.0]" }, "spdx_license_list_version": "3.17", "files_count": 1 diff --git a/tests/formattedcode/data/yaml/simple-expected.yaml b/tests/formattedcode/data/yaml/simple-expected.yaml index c0143902620..25dcc57254c 100644 --- a/tests/formattedcode/data/yaml/simple-expected.yaml +++ b/tests/formattedcode/data/yaml/simple-expected.yaml @@ -22,9 +22,9 @@ headers: system_environment: operating_system: linux cpu_architecture: 64 - platform: Linux-4.15.0-189-generic-x86_64-with-debian-stretch-sid - platform_version: '#200~16.04.1-Ubuntu SMP Fri Jun 24 05:32:48 UTC 2022' - python_version: "3.7.9 (default, Dec 6 2020, 11:48:06) \n[GCC 5.4.0 20160609]" + platform: Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.35 + platform_version: '#1 SMP Wed Mar 2 00:30:59 UTC 2022' + python_version: 3.10.5 (main, Jul 30 2022, 03:32:13) [GCC 11.2.0] spdx_license_list_version: '3.17' files_count: 1 dependencies: [] diff --git a/tests/formattedcode/data/yaml/tree/expected.yaml b/tests/formattedcode/data/yaml/tree/expected.yaml index 564643b7ab1..694f93ce975 100644 --- a/tests/formattedcode/data/yaml/tree/expected.yaml +++ b/tests/formattedcode/data/yaml/tree/expected.yaml @@ -23,9 +23,9 @@ headers: system_environment: operating_system: linux cpu_architecture: 64 - platform: Linux-4.15.0-189-generic-x86_64-with-debian-stretch-sid - platform_version: '#200~16.04.1-Ubuntu SMP Fri Jun 24 05:32:48 UTC 2022' - python_version: "3.7.9 (default, Dec 6 2020, 11:48:06) \n[GCC 5.4.0 20160609]" + platform: Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.35 + platform_version: '#1 SMP Wed Mar 2 00:30:59 UTC 2022' + python_version: 3.10.5 (main, Jul 30 2022, 03:32:13) [GCC 11.2.0] spdx_license_list_version: '3.17' files_count: 7 dependencies: [] diff --git a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json index ae899d2277d..3e7194b16b5 100644 --- a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json @@ -1,31 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "apache-1.0.txt", diff --git a/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json b/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json index 45e7ffc4e35..45491ebfd68 100644 --- a/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json +++ b/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json @@ -1,34 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--license-text-diagnostics": true, - "--strip-root": true, - "--unknown-licenses": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "COPYING", diff --git a/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json b/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json index 50de4bcece7..584192a1970 100644 --- a/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json +++ b/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json @@ -1,34 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--license-text-diagnostics": true, - "--strip-root": true, - "--unknown-licenses": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "LICENSE", diff --git a/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json b/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json index 7ef1a164933..518e35174ff 100644 --- a/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json +++ b/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json @@ -1,34 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--license-text-diagnostics": true, - "--strip-root": true, - "--unknown-licenses": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "files": [ { "path": "license-notice.txt", diff --git a/tests/licensedcode/data/plugin_license/license_url.expected.json b/tests/licensedcode/data/plugin_license/license_url.expected.json index 23ad951f827..1440419832d 100644 --- a/tests/licensedcode/data/plugin_license/license_url.expected.json +++ b/tests/licensedcode/data/plugin_license/license_url.expected.json @@ -1,32 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json-pp": "", - "--license": true, - "--license-url-template": "https://example.com/urn:{}", - "--unknown-licenses": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "files": [ { "path": "license_url", diff --git a/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json b/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json index a107b7a8a4e..4677e3319d1 100644 --- a/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json +++ b/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json @@ -1,31 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json-pp": "", - "--license": true, - "--license-text": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 1 - } - } - ], "files": [ { "path": "sqlite.tgz", diff --git a/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json b/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json index 6a9ee5f3fb6..fe6ec0220d8 100644 --- a/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json +++ b/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json @@ -1,33 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--license-text-diagnostics": true, - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "gpl-2.0_with_linux-syscall-note_or_linux-openib_SPDX.RULE", diff --git a/tests/licensedcode/data/plugin_license/text/scan.expected.json b/tests/licensedcode/data/plugin_license/text/scan.expected.json index 203c82ba390..bc0d7454980 100644 --- a/tests/licensedcode/data/plugin_license/text/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/text/scan.expected.json @@ -1,32 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "gpl-2.0_with_linux-syscall-note_or_linux-openib_SPDX.RULE", diff --git a/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json b/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json index 0ffb00ddd12..baab28de655 100644 --- a/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json +++ b/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json @@ -1,33 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--license-text-diagnostics": true, - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "gpl-2.0_with_linux-syscall-note_or_linux-openib_SPDX.RULE", diff --git a/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json b/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json index cb82828093c..baab28de655 100644 --- a/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json @@ -1,32 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json": "", - "--license": true, - "--license-text": true, - "--strip-root": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "files": [ { "path": "gpl-2.0_with_linux-syscall-note_or_linux-openib_SPDX.RULE", diff --git a/tests/licensedcode/data/plugin_license_text/scan.expected.json b/tests/licensedcode/data/plugin_license_text/scan.expected.json index eae938b9db6..2c0c890494d 100644 --- a/tests/licensedcode/data/plugin_license_text/scan.expected.json +++ b/tests/licensedcode/data/plugin_license_text/scan.expected.json @@ -1,33 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--info": true, - "--is-license-text": true, - "--json-pp": "", - "--license": true, - "--license-text": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 5 - } - } - ], "files": [ { "path": "scan", diff --git a/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json b/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json index 909db5edcd2..566311e3c72 100644 --- a/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json +++ b/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json @@ -1,32 +1,4 @@ { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--json-pp": "", - "--license": true, - "--licenses-reference": true, - "--package": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "warnings": [], - "extra_data": { - "system_environment": { - "operating_system": "linux", - "cpu_architecture": "64", - "platform": "Linux-5.4.0-109-generic-x86_64-with-Ubuntu-18.04-bionic", - "platform_version": "#123~18.04.1-Ubuntu SMP Fri Apr 8 09:48:52 UTC 2022", - "python_version": "3.6.9 (default, Mar 15 2022, 13:55:28) \n[GCC 8.4.0]" - }, - "spdx_license_list_version": "3.16", - "files_count": 2 - } - } - ], "dependencies": [], "packages": [ { diff --git a/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json b/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json index 7f4fcf8f1c2..8c6080401d1 100644 --- a/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json +++ b/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json @@ -250,7 +250,323 @@ { "path": "setup.cfg", "type": "file", - "package_data": [], + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "setuptools", + "version": "58.2.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Python Packaging Authority", + "email": "distutils-sig@python.org", + "url": null + } + ], + "keywords": [], + "homepage_url": "https://github.com/pypa/setuptools", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:generic/python", + "extracted_requirement": "python_requires>=3.6", + "scope": "python", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest", + "extracted_requirement": "pytest>=4.6", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-checkdocs", + "extracted_requirement": "pytest-checkdocs>=2.4", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-flake8", + "extracted_requirement": "pytest-flake8", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-black", + "extracted_requirement": "pytest-black>=0.3.7; platform_python_implementation != \"PyPy\"", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-cov", + "extracted_requirement": "pytest-cov", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-mypy", + "extracted_requirement": "pytest-mypy; platform_python_implementation != \"PyPy\"", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-enabler", + "extracted_requirement": "pytest-enabler>=1.0.1", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/mock", + "extracted_requirement": "mock", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/flake8-2020", + "extracted_requirement": "flake8-2020", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/virtualenv", + "extracted_requirement": "virtualenv>=13.0.0", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-virtualenv", + "extracted_requirement": "pytest-virtualenv>=1.2.7", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/wheel", + "extracted_requirement": "wheel", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/paver", + "extracted_requirement": "paver", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pip", + "extracted_requirement": "pip>=19.1", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/jaraco-envs", + "extracted_requirement": "jaraco.envs", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pytest-xdist", + "extracted_requirement": "pytest-xdist", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/sphinx", + "extracted_requirement": "sphinx", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/jaraco-path", + "extracted_requirement": "jaraco.path>=3.2.0", + "scope": "testing", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/sphinx", + "extracted_requirement": "sphinx", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/jaraco-packaging", + "extracted_requirement": "jaraco.packaging>=8.2", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/rst-linker", + "extracted_requirement": "rst.linker>=1.9", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/jaraco-tidelift", + "extracted_requirement": "jaraco.tidelift>=1.4", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/pygments-github-lexers@0.0.5", + "extracted_requirement": "pygments-github-lexers==0.0.5", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/sphinx-inline-tabs", + "extracted_requirement": "sphinx-inline-tabs", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/sphinxcontrib-towncrier", + "extracted_requirement": "sphinxcontrib-towncrier", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:pypi/furo", + "extracted_requirement": "furo", + "scope": "docs", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pypi_setup_cfg", + "purl": "pkg:pypi/setuptools@58.2.0" + } + ], "for_packages": [ "pkg:pypi/setuptools@58.2.0?uuid=fixed-uid-done-for-testing-5642512d1758" ], diff --git a/tests/packagedcode/data/plugin/python-package-expected.json b/tests/packagedcode/data/plugin/python-package-expected.json index 7c7186a46ec..6fcfa1313b2 100644 --- a/tests/packagedcode/data/plugin/python-package-expected.json +++ b/tests/packagedcode/data/plugin/python-package-expected.json @@ -240,7 +240,7 @@ }, { "purl": "pkg:pypi/setuptools", - "extracted_requirement": ">=32.0.0", + "extracted_requirement": "setuptools>=32.0.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -265,7 +265,7 @@ }, { "purl": "pkg:pypi/nose", - "extracted_requirement": ">=1.3.7", + "extracted_requirement": "nose>=1.3.7", "scope": "install", "is_runtime": true, "is_optional": false, @@ -290,7 +290,7 @@ }, { "purl": "pkg:pypi/chardet", - "extracted_requirement": ">=3.0.4", + "extracted_requirement": "chardet>=3.0.4", "scope": "install", "is_runtime": true, "is_optional": false, @@ -1213,7 +1213,7 @@ "dependencies": [ { "purl": "pkg:pypi/setuptools", - "extracted_requirement": ">=32.0.0", + "extracted_requirement": "setuptools>=32.0.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -1234,7 +1234,7 @@ }, { "purl": "pkg:pypi/nose", - "extracted_requirement": ">=1.3.7", + "extracted_requirement": "nose>=1.3.7", "scope": "install", "is_runtime": true, "is_optional": false, @@ -1255,7 +1255,7 @@ }, { "purl": "pkg:pypi/chardet", - "extracted_requirement": ">=3.0.4", + "extracted_requirement": "chardet>=3.0.4", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/archive/commoncode-21.5.12-py3.9.egg-expected.json b/tests/packagedcode/data/pypi/archive/commoncode-21.5.12-py3.9.egg-expected.json index 4a1bc06c3e4..daa8386df72 100644 --- a/tests/packagedcode/data/pypi/archive/commoncode-21.5.12-py3.9.egg-expected.json +++ b/tests/packagedcode/data/pypi/archive/commoncode-21.5.12-py3.9.egg-expected.json @@ -152,7 +152,7 @@ "extracted_requirement": "Sphinx>=3.3.1; extra == \"docs\"", "scope": "docs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -162,7 +162,7 @@ "extracted_requirement": "sphinx-rtd-theme>=0.5.0; extra == \"docs\"", "scope": "docs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -172,7 +172,7 @@ "extracted_requirement": "doc8>=0.8.1; extra == \"docs\"", "scope": "docs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -182,7 +182,7 @@ "extracted_requirement": "pytest>=6; extra == \"testing\"", "scope": "testing", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -192,7 +192,7 @@ "extracted_requirement": "pytest-xdist>=2; extra == \"testing\"", "scope": "testing", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/develop/scancode_toolkit.egg-info-expected.json b/tests/packagedcode/data/pypi/develop/scancode_toolkit.egg-info-expected.json index 15fa836c183..66ee76e1f19 100644 --- a/tests/packagedcode/data/pypi/develop/scancode_toolkit.egg-info-expected.json +++ b/tests/packagedcode/data/pypi/develop/scancode_toolkit.egg-info-expected.json @@ -1532,7 +1532,7 @@ "extracted_requirement": "pytest; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1542,7 +1542,7 @@ "extracted_requirement": "pytest-cov; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1552,7 +1552,7 @@ "extracted_requirement": "pytest-xdist; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1562,7 +1562,7 @@ "extracted_requirement": "pytest-rerunfailures; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1572,7 +1572,7 @@ "extracted_requirement": "aboutcode-toolkit>=6.0.0; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1582,7 +1582,7 @@ "extracted_requirement": "bump2version; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1592,7 +1592,7 @@ "extracted_requirement": "codecov; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1602,7 +1602,7 @@ "extracted_requirement": "coverage; extra == \"dev\"", "scope": "dev", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -1612,7 +1612,7 @@ "extracted_requirement": "rpm_inspector_rpm>=4.16.1.3; platform_system == \"Linux\" and extra == \"packages\"", "scope": "packages", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/metadata/v20/PKG-INFO-expected.json b/tests/packagedcode/data/pypi/metadata/v20/PKG-INFO-expected.json index e697c932077..f84c0c10f1d 100644 --- a/tests/packagedcode/data/pypi/metadata/v20/PKG-INFO-expected.json +++ b/tests/packagedcode/data/pypi/metadata/v20/PKG-INFO-expected.json @@ -68,7 +68,7 @@ "extracted_requirement": "pykerberos; extra == \"gssapi\"", "scope": "gssapi", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -78,7 +78,7 @@ "extracted_requirement": "dnspython<2.0.0,>=1.8.0; extra == \"srv\"", "scope": "srv", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -88,7 +88,7 @@ "extracted_requirement": "ipaddress; extra == \"tls\"", "scope": "tls", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/requirements_txt/basic/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/basic/output.expected.json index a4305e0b49e..4d688fbaf11 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/basic/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/basic/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/setuptools", - "extracted_requirement": ">=32.0.0", + "extracted_requirement": "setuptools>=32.0.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/nose", - "extracted_requirement": ">=1.3.7", + "extracted_requirement": "nose>=1.3.7", "scope": "install", "is_runtime": true, "is_optional": false, @@ -73,7 +73,7 @@ }, { "purl": "pkg:pypi/chardet", - "extracted_requirement": ">=3.0.4", + "extracted_requirement": "chardet>=3.0.4", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/comments_and_empties/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/comments_and_empties/output.expected.json index 37c4b612d6e..446dcba014b 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/comments_and_empties/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/comments_and_empties/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/distutils2@1.0a3", - "extracted_requirement": "==1.0a3", + "extracted_requirement": "Distutils2==1.0a3", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/complex/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/complex/output.expected.json index 142842d69f0..f59b799b676 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/complex/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/complex/output.expected.json @@ -35,7 +35,7 @@ "dependencies": [ { "purl": "pkg:pypi/babel@0.9.6", - "extracted_requirement": "==0.9.6", + "extracted_requirement": "Babel==0.9.6", "scope": "install", "is_runtime": true, "is_optional": false, @@ -77,7 +77,7 @@ }, { "purl": "pkg:pypi/django-uuidfield@0.2", - "extracted_requirement": "==0.2", + "extracted_requirement": "django-uuidfield==0.2", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/dev/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/dev/output.expected.json index 534a571196c..94187c8dc52 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/dev/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/dev/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/prompt-toolkit", - "extracted_requirement": ">=1.0.14", + "extracted_requirement": "prompt_toolkit>=1.0.14", "scope": "development", "is_runtime": false, "is_optional": true, @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/pygments@2.2.0", - "extracted_requirement": "==2.2.0", + "extracted_requirement": "Pygments==2.2.0", "scope": "development", "is_runtime": false, "is_optional": true, @@ -73,7 +73,7 @@ }, { "purl": "pkg:pypi/regex", - "extracted_requirement": "", + "extracted_requirement": "regex", "scope": "development", "is_runtime": false, "is_optional": true, diff --git a/tests/packagedcode/data/pypi/requirements_txt/double_extras/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/double_extras/output.expected.json index 25e3122f246..85fec273a4f 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/double_extras/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/double_extras/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/mypackage@3.0", - "extracted_requirement": "[pdf]==3.0", + "extracted_requirement": "MyPackage[pdf]==3.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/fizzy", - "extracted_requirement": "[bar,foo]", + "extracted_requirement": "Fizzy[bar,foo]", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/eol_comment/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/eol_comment/output.expected.json index 7fc802d1a26..aced69a2e07 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/eol_comment/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/eol_comment/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/req@1.0", - "extracted_requirement": "==1.0", + "extracted_requirement": "req==1.0", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/invalid_spec/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/invalid_spec/output.expected.json index a94268d8284..9daeb298df0 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/invalid_spec/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/invalid_spec/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/test", - "extracted_requirement": ">>1.2.0", + "extracted_requirement": "test>>1.2.0", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/many_specs/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/many_specs/output.expected.json index 07e591e4369..7d44cdb702e 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/many_specs/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/many_specs/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/pickything", - "extracted_requirement": "<1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1", + "extracted_requirement": "PickyThing<1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/mixed/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/mixed/output.expected.json index 092d832d289..0f1e4ff22bc 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/mixed/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/mixed/output.expected.json @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/django", - "extracted_requirement": ">=1.5,<1.6", + "extracted_requirement": "Django>=1.5,<1.6", "scope": "install", "is_runtime": true, "is_optional": false, @@ -73,7 +73,7 @@ }, { "purl": "pkg:pypi/numpy", - "extracted_requirement": "", + "extracted_requirement": "numpy", "scope": "install", "is_runtime": true, "is_optional": false, @@ -94,7 +94,7 @@ }, { "purl": "pkg:pypi/docparser", - "extracted_requirement": "[pdf]", + "extracted_requirement": "DocParser[pdf]", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/pinned/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/pinned/output.expected.json index fc4c6c9bacb..2609ebf36e4 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/pinned/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/pinned/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/aiohttp@3.6.2", - "extracted_requirement": "==3.6.2", + "extracted_requirement": "aiohttp==3.6.2", "scope": "install", "is_runtime": true, "is_optional": false, @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/async-timeout@3.0.1", - "extracted_requirement": "==3.0.1", + "extracted_requirement": "async-timeout==3.0.1", "scope": "install", "is_runtime": true, "is_optional": false, @@ -73,7 +73,7 @@ }, { "purl": "pkg:pypi/attrs@19.3.0", - "extracted_requirement": "==19.3.0", + "extracted_requirement": "attrs==19.3.0", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/repeated/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/repeated/output.expected.json index 6b9b98111bc..0a8d1d7a73f 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/repeated/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/repeated/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/test@1.2.0", - "extracted_requirement": "==1.2.0", + "extracted_requirement": "test==1.2.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/test", - "extracted_requirement": ">=1.2.0", + "extracted_requirement": "test>=1.2.0", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/requirements_in/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/requirements_in/output.expected.json index 343d60f5ea7..ea07c04a2aa 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/requirements_in/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/requirements_in/output.expected.json @@ -31,7 +31,7 @@ "dependencies": [ { "purl": "pkg:pypi/setuptools", - "extracted_requirement": "", + "extracted_requirement": "setuptools", "scope": "install", "is_runtime": true, "is_optional": false, @@ -52,7 +52,7 @@ }, { "purl": "pkg:pypi/nose", - "extracted_requirement": "", + "extracted_requirement": "nose", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/requirements_txt/simple/output.expected.json b/tests/packagedcode/data/pypi/requirements_txt/simple/output.expected.json index 81127fb7c1d..c84868e9ae9 100644 --- a/tests/packagedcode/data/pypi/requirements_txt/simple/output.expected.json +++ b/tests/packagedcode/data/pypi/requirements_txt/simple/output.expected.json @@ -2,7 +2,7 @@ [ { "purl": "pkg:pypi/lxml@3.4.4", - "extracted_requirement": "==3.4.4", + "extracted_requirement": "lxml==3.4.4", "scope": "install", "is_runtime": true, "is_optional": false, @@ -23,7 +23,7 @@ }, { "purl": "pkg:pypi/requests@2.7.0", - "extracted_requirement": "==2.7.0", + "extracted_requirement": "requests==2.7.0", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/source-package/pip-22.0.4-pypi-package-expected.json b/tests/packagedcode/data/pypi/source-package/pip-22.0.4-pypi-package-expected.json index fb4a4b1d527..802bc17e414 100644 --- a/tests/packagedcode/data/pypi/source-package/pip-22.0.4-pypi-package-expected.json +++ b/tests/packagedcode/data/pypi/source-package/pip-22.0.4-pypi-package-expected.json @@ -235,7 +235,7 @@ "dependencies": [ { "purl": "pkg:pypi/sphinx", - "extracted_requirement": "~=4.2,!=4.4.0", + "extracted_requirement": "sphinx~=4.2,!=4.4.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -256,7 +256,7 @@ }, { "purl": "pkg:pypi/towncrier", - "extracted_requirement": "", + "extracted_requirement": "towncrier", "scope": "install", "is_runtime": true, "is_optional": false, @@ -277,7 +277,7 @@ }, { "purl": "pkg:pypi/furo", - "extracted_requirement": "", + "extracted_requirement": "furo", "scope": "install", "is_runtime": true, "is_optional": false, @@ -298,7 +298,7 @@ }, { "purl": "pkg:pypi/myst-parser", - "extracted_requirement": "", + "extracted_requirement": "myst_parser", "scope": "install", "is_runtime": true, "is_optional": false, @@ -319,7 +319,7 @@ }, { "purl": "pkg:pypi/sphinx-copybutton", - "extracted_requirement": "", + "extracted_requirement": "sphinx-copybutton", "scope": "install", "is_runtime": true, "is_optional": false, @@ -340,7 +340,7 @@ }, { "purl": "pkg:pypi/sphinx-inline-tabs", - "extracted_requirement": "", + "extracted_requirement": "sphinx-inline-tabs", "scope": "install", "is_runtime": true, "is_optional": false, @@ -361,7 +361,7 @@ }, { "purl": "pkg:pypi/sphinxcontrib-towncrier", - "extracted_requirement": ">=0.2.0a0", + "extracted_requirement": "sphinxcontrib-towncrier>=0.2.0a0", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/metadata-1.0/PyJPString-0.0.3-subdir-expected.json b/tests/packagedcode/data/pypi/unpacked_sdist/metadata-1.0/PyJPString-0.0.3-subdir-expected.json index 45df3a66b26..080244a3089 100644 --- a/tests/packagedcode/data/pypi/unpacked_sdist/metadata-1.0/PyJPString-0.0.3-subdir-expected.json +++ b/tests/packagedcode/data/pypi/unpacked_sdist/metadata-1.0/PyJPString-0.0.3-subdir-expected.json @@ -194,7 +194,7 @@ "extracted_requirement": "django; extra == \"test\"", "scope": "test", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -204,7 +204,7 @@ "extracted_requirement": "pytest==2.9.1; extra == \"test\"", "scope": "test", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": true, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json index b3f6ed6834a..f0bbaf1fffa 100644 --- a/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json +++ b/tests/packagedcode/data/pypi/unpacked_sdist/prefer-egg-info-pkg-info/celery-expected.json @@ -131,7 +131,7 @@ "extracted_requirement": "pyArango>=1.3.2; extra == \"arangodb\"", "scope": "arangodb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -145,7 +145,7 @@ "extracted_requirement": "cryptography; extra == \"auth\"", "scope": "auth", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -159,7 +159,7 @@ "extracted_requirement": "azure-storage-blob==12.9.0; extra == \"azureblockblob\"", "scope": "azureblockblob", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": true, "resolved_package": {}, "extra_data": {}, @@ -173,7 +173,7 @@ "extracted_requirement": "brotli>=1.0.0; platform_python_implementation == \"CPython\" and extra == \"brotli\"", "scope": "brotli", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -187,7 +187,7 @@ "extracted_requirement": "brotlipy>=0.7.0; platform_python_implementation == \"PyPy\" and extra == \"brotli\"", "scope": "brotli", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -201,7 +201,7 @@ "extracted_requirement": "cassandra-driver<3.21.0; extra == \"cassandra\"", "scope": "cassandra", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -215,7 +215,7 @@ "extracted_requirement": "python-consul2; extra == \"consul\"", "scope": "consul", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -229,7 +229,7 @@ "extracted_requirement": "pydocumentdb==2.3.2; extra == \"cosmosdbsql\"", "scope": "cosmosdbsql", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": true, "resolved_package": {}, "extra_data": {}, @@ -243,7 +243,7 @@ "extracted_requirement": "couchbase>=3.0.0; (platform_python_implementation != \"PyPy\" and (platform_system != \"Windows\" or python_version < \"3.10\")) and extra == \"couchbase\"", "scope": "couchbase", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -257,7 +257,7 @@ "extracted_requirement": "pycouchdb; extra == \"couchdb\"", "scope": "couchdb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -271,7 +271,7 @@ "extracted_requirement": "Django>=1.11; extra == \"django\"", "scope": "django", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -285,7 +285,7 @@ "extracted_requirement": "boto3>=1.9.178; extra == \"dynamodb\"", "scope": "dynamodb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -299,7 +299,7 @@ "extracted_requirement": "elasticsearch; extra == \"elasticsearch\"", "scope": "elasticsearch", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -313,7 +313,7 @@ "extracted_requirement": "eventlet>=0.32.0; python_version < \"3.10\" and extra == \"eventlet\"", "scope": "eventlet", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -327,7 +327,7 @@ "extracted_requirement": "gevent>=1.5.0; extra == \"gevent\"", "scope": "gevent", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -341,7 +341,7 @@ "extracted_requirement": "librabbitmq>=1.5.0; extra == \"librabbitmq\"", "scope": "librabbitmq", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -355,7 +355,7 @@ "extracted_requirement": "pylibmc; platform_system != \"Windows\" and extra == \"memcache\"", "scope": "memcache", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -369,7 +369,7 @@ "extracted_requirement": "pymongo[srv]>=3.11.1; extra == \"mongodb\"", "scope": "mongodb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -383,7 +383,7 @@ "extracted_requirement": "msgpack; extra == \"msgpack\"", "scope": "msgpack", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -397,7 +397,7 @@ "extracted_requirement": "python-memcached; extra == \"pymemcache\"", "scope": "pymemcache", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -411,7 +411,7 @@ "extracted_requirement": "pyro4; extra == \"pyro\"", "scope": "pyro", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -425,7 +425,7 @@ "extracted_requirement": "pytest-celery; extra == \"pytest\"", "scope": "pytest", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -439,7 +439,7 @@ "extracted_requirement": "redis!=4.0.0,!=4.0.1,>=3.4.1; extra == \"redis\"", "scope": "redis", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -453,7 +453,7 @@ "extracted_requirement": "boto3>=1.9.125; extra == \"s3\"", "scope": "s3", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -467,7 +467,7 @@ "extracted_requirement": "softlayer_messaging>=1.0.3; extra == \"slmq\"", "scope": "slmq", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -481,7 +481,7 @@ "extracted_requirement": "ephem; platform_python_implementation != \"PyPy\" and extra == \"solar\"", "scope": "solar", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -495,7 +495,7 @@ "extracted_requirement": "sqlalchemy; extra == \"sqlalchemy\"", "scope": "sqlalchemy", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -509,7 +509,7 @@ "extracted_requirement": "kombu[sqs]; extra == \"sqs\"", "scope": "sqs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -523,7 +523,7 @@ "extracted_requirement": "tblib>=1.3.0; python_version < \"3.8.0\" and extra == \"tblib\"", "scope": "tblib", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -537,7 +537,7 @@ "extracted_requirement": "tblib>=1.5.0; python_version >= \"3.8.0\" and extra == \"tblib\"", "scope": "tblib", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -551,7 +551,7 @@ "extracted_requirement": "PyYAML>=3.10; extra == \"yaml\"", "scope": "yaml", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -565,7 +565,7 @@ "extracted_requirement": "kazoo>=1.3.1; extra == \"zookeeper\"", "scope": "zookeeper", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -579,7 +579,7 @@ "extracted_requirement": "zstandard; extra == \"zstd\"", "scope": "zstd", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -6789,7 +6789,7 @@ "extracted_requirement": "pyArango>=1.3.2; extra == \"arangodb\"", "scope": "arangodb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6799,7 +6799,7 @@ "extracted_requirement": "cryptography; extra == \"auth\"", "scope": "auth", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6809,7 +6809,7 @@ "extracted_requirement": "azure-storage-blob==12.9.0; extra == \"azureblockblob\"", "scope": "azureblockblob", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": true, "resolved_package": {}, "extra_data": {} @@ -6819,7 +6819,7 @@ "extracted_requirement": "brotli>=1.0.0; platform_python_implementation == \"CPython\" and extra == \"brotli\"", "scope": "brotli", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6829,7 +6829,7 @@ "extracted_requirement": "brotlipy>=0.7.0; platform_python_implementation == \"PyPy\" and extra == \"brotli\"", "scope": "brotli", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6839,7 +6839,7 @@ "extracted_requirement": "cassandra-driver<3.21.0; extra == \"cassandra\"", "scope": "cassandra", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6849,7 +6849,7 @@ "extracted_requirement": "python-consul2; extra == \"consul\"", "scope": "consul", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6859,7 +6859,7 @@ "extracted_requirement": "pydocumentdb==2.3.2; extra == \"cosmosdbsql\"", "scope": "cosmosdbsql", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": true, "resolved_package": {}, "extra_data": {} @@ -6869,7 +6869,7 @@ "extracted_requirement": "couchbase>=3.0.0; (platform_python_implementation != \"PyPy\" and (platform_system != \"Windows\" or python_version < \"3.10\")) and extra == \"couchbase\"", "scope": "couchbase", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6879,7 +6879,7 @@ "extracted_requirement": "pycouchdb; extra == \"couchdb\"", "scope": "couchdb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6889,7 +6889,7 @@ "extracted_requirement": "Django>=1.11; extra == \"django\"", "scope": "django", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6899,7 +6899,7 @@ "extracted_requirement": "boto3>=1.9.178; extra == \"dynamodb\"", "scope": "dynamodb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6909,7 +6909,7 @@ "extracted_requirement": "elasticsearch; extra == \"elasticsearch\"", "scope": "elasticsearch", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6919,7 +6919,7 @@ "extracted_requirement": "eventlet>=0.32.0; python_version < \"3.10\" and extra == \"eventlet\"", "scope": "eventlet", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6929,7 +6929,7 @@ "extracted_requirement": "gevent>=1.5.0; extra == \"gevent\"", "scope": "gevent", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6939,7 +6939,7 @@ "extracted_requirement": "librabbitmq>=1.5.0; extra == \"librabbitmq\"", "scope": "librabbitmq", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6949,7 +6949,7 @@ "extracted_requirement": "pylibmc; platform_system != \"Windows\" and extra == \"memcache\"", "scope": "memcache", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6959,7 +6959,7 @@ "extracted_requirement": "pymongo[srv]>=3.11.1; extra == \"mongodb\"", "scope": "mongodb", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6969,7 +6969,7 @@ "extracted_requirement": "msgpack; extra == \"msgpack\"", "scope": "msgpack", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6979,7 +6979,7 @@ "extracted_requirement": "python-memcached; extra == \"pymemcache\"", "scope": "pymemcache", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6989,7 +6989,7 @@ "extracted_requirement": "pyro4; extra == \"pyro\"", "scope": "pyro", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -6999,7 +6999,7 @@ "extracted_requirement": "pytest-celery; extra == \"pytest\"", "scope": "pytest", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7009,7 +7009,7 @@ "extracted_requirement": "redis!=4.0.0,!=4.0.1,>=3.4.1; extra == \"redis\"", "scope": "redis", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7019,7 +7019,7 @@ "extracted_requirement": "boto3>=1.9.125; extra == \"s3\"", "scope": "s3", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7029,7 +7029,7 @@ "extracted_requirement": "softlayer_messaging>=1.0.3; extra == \"slmq\"", "scope": "slmq", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7039,7 +7039,7 @@ "extracted_requirement": "ephem; platform_python_implementation != \"PyPy\" and extra == \"solar\"", "scope": "solar", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7049,7 +7049,7 @@ "extracted_requirement": "sqlalchemy; extra == \"sqlalchemy\"", "scope": "sqlalchemy", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7059,7 +7059,7 @@ "extracted_requirement": "kombu[sqs]; extra == \"sqs\"", "scope": "sqs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7069,7 +7069,7 @@ "extracted_requirement": "tblib>=1.3.0; python_version < \"3.8.0\" and extra == \"tblib\"", "scope": "tblib", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7079,7 +7079,7 @@ "extracted_requirement": "tblib>=1.5.0; python_version >= \"3.8.0\" and extra == \"tblib\"", "scope": "tblib", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7089,7 +7089,7 @@ "extracted_requirement": "PyYAML>=3.10; extra == \"yaml\"", "scope": "yaml", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7099,7 +7099,7 @@ "extracted_requirement": "kazoo>=1.3.1; extra == \"zookeeper\"", "scope": "zookeeper", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7109,7 +7109,7 @@ "extracted_requirement": "zstandard; extra == \"zstd\"", "scope": "zstd", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -7199,7 +7199,7 @@ "dependencies": [ { "purl": "pkg:pypi/pytz", - "extracted_requirement": ">=2021.3", + "extracted_requirement": "pytz>=2021.3", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7220,7 +7220,7 @@ }, { "purl": "pkg:pypi/billiard", - "extracted_requirement": ">=3.6.4.0,<4.0", + "extracted_requirement": "billiard>=3.6.4.0,<4.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7241,7 +7241,7 @@ }, { "purl": "pkg:pypi/kombu", - "extracted_requirement": ">=5.2.3,<6.0", + "extracted_requirement": "kombu>=5.2.3,<6.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7262,7 +7262,7 @@ }, { "purl": "pkg:pypi/vine", - "extracted_requirement": ">=5.0.0,<6.0", + "extracted_requirement": "vine>=5.0.0,<6.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7283,7 +7283,7 @@ }, { "purl": "pkg:pypi/click", - "extracted_requirement": ">=8.0.3,<9.0", + "extracted_requirement": "click>=8.0.3,<9.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7304,7 +7304,7 @@ }, { "purl": "pkg:pypi/click-didyoumean", - "extracted_requirement": ">=0.0.3", + "extracted_requirement": "click-didyoumean>=0.0.3", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7325,7 +7325,7 @@ }, { "purl": "pkg:pypi/click-repl", - "extracted_requirement": ">=0.2.0", + "extracted_requirement": "click-repl>=0.2.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7346,7 +7346,7 @@ }, { "purl": "pkg:pypi/click-plugins", - "extracted_requirement": ">=1.1.1", + "extracted_requirement": "click-plugins>=1.1.1", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7367,7 +7367,7 @@ }, { "purl": "pkg:pypi/importlib-metadata", - "extracted_requirement": ">=1.4.0", + "extracted_requirement": "importlib-metadata>=1.4.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7388,7 +7388,7 @@ }, { "purl": "pkg:pypi/pyarango", - "extracted_requirement": ">=1.3.2", + "extracted_requirement": "pyArango>=1.3.2", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7409,7 +7409,7 @@ }, { "purl": "pkg:pypi/cryptography", - "extracted_requirement": "", + "extracted_requirement": "cryptography", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7430,7 +7430,7 @@ }, { "purl": "pkg:pypi/azure-storage-blob@12.9.0", - "extracted_requirement": "==12.9.0", + "extracted_requirement": "azure-storage-blob==12.9.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7451,7 +7451,7 @@ }, { "purl": "pkg:pypi/brotli", - "extracted_requirement": ">=1.0.0", + "extracted_requirement": "brotli>=1.0.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7472,7 +7472,7 @@ }, { "purl": "pkg:pypi/brotlipy", - "extracted_requirement": ">=0.7.0", + "extracted_requirement": "brotlipy>=0.7.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7493,7 +7493,7 @@ }, { "purl": "pkg:pypi/cassandra-driver", - "extracted_requirement": "<3.21.0", + "extracted_requirement": "cassandra-driver<3.21.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7514,7 +7514,7 @@ }, { "purl": "pkg:pypi/python-consul2", - "extracted_requirement": "", + "extracted_requirement": "python-consul2", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7535,7 +7535,7 @@ }, { "purl": "pkg:pypi/pydocumentdb@2.3.2", - "extracted_requirement": "==2.3.2", + "extracted_requirement": "pydocumentdb==2.3.2", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7556,7 +7556,7 @@ }, { "purl": "pkg:pypi/couchbase", - "extracted_requirement": ">=3.0.0", + "extracted_requirement": "couchbase>=3.0.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7577,7 +7577,7 @@ }, { "purl": "pkg:pypi/pycouchdb", - "extracted_requirement": "", + "extracted_requirement": "pycouchdb", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7598,7 +7598,7 @@ }, { "purl": "pkg:pypi/django", - "extracted_requirement": ">=1.11", + "extracted_requirement": "Django>=1.11", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7619,7 +7619,7 @@ }, { "purl": "pkg:pypi/boto3", - "extracted_requirement": ">=1.9.178", + "extracted_requirement": "boto3>=1.9.178", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7640,7 +7640,7 @@ }, { "purl": "pkg:pypi/elasticsearch", - "extracted_requirement": "", + "extracted_requirement": "elasticsearch", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7661,7 +7661,7 @@ }, { "purl": "pkg:pypi/eventlet", - "extracted_requirement": ">=0.32.0", + "extracted_requirement": "eventlet>=0.32.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7682,7 +7682,7 @@ }, { "purl": "pkg:pypi/gevent", - "extracted_requirement": ">=1.5.0", + "extracted_requirement": "gevent>=1.5.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7703,7 +7703,7 @@ }, { "purl": "pkg:pypi/librabbitmq", - "extracted_requirement": ">=1.5.0", + "extracted_requirement": "librabbitmq>=1.5.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7724,7 +7724,7 @@ }, { "purl": "pkg:pypi/pylibmc", - "extracted_requirement": "", + "extracted_requirement": "pylibmc", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7745,7 +7745,7 @@ }, { "purl": "pkg:pypi/pymongo", - "extracted_requirement": "[srv]>=3.11.1", + "extracted_requirement": "pymongo[srv]>=3.11.1", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7766,7 +7766,7 @@ }, { "purl": "pkg:pypi/msgpack", - "extracted_requirement": "", + "extracted_requirement": "msgpack", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7787,7 +7787,7 @@ }, { "purl": "pkg:pypi/python-memcached", - "extracted_requirement": "", + "extracted_requirement": "python-memcached", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7808,7 +7808,7 @@ }, { "purl": "pkg:pypi/pyro4", - "extracted_requirement": "", + "extracted_requirement": "pyro4", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7829,7 +7829,7 @@ }, { "purl": "pkg:pypi/pytest-celery", - "extracted_requirement": "", + "extracted_requirement": "pytest-celery", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7850,7 +7850,7 @@ }, { "purl": "pkg:pypi/redis", - "extracted_requirement": ">=3.4.1,!=4.0.0,!=4.0.1", + "extracted_requirement": "redis>=3.4.1,!=4.0.0,!=4.0.1", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7871,7 +7871,7 @@ }, { "purl": "pkg:pypi/boto3", - "extracted_requirement": ">=1.9.125", + "extracted_requirement": "boto3>=1.9.125", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7892,7 +7892,7 @@ }, { "purl": "pkg:pypi/softlayer-messaging", - "extracted_requirement": ">=1.0.3", + "extracted_requirement": "softlayer_messaging>=1.0.3", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7913,7 +7913,7 @@ }, { "purl": "pkg:pypi/ephem", - "extracted_requirement": "", + "extracted_requirement": "ephem", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7934,7 +7934,7 @@ }, { "purl": "pkg:pypi/sqlalchemy", - "extracted_requirement": "", + "extracted_requirement": "sqlalchemy", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7955,7 +7955,7 @@ }, { "purl": "pkg:pypi/kombu", - "extracted_requirement": "[sqs]", + "extracted_requirement": "kombu[sqs]", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7976,7 +7976,7 @@ }, { "purl": "pkg:pypi/tblib", - "extracted_requirement": ">=1.3.0", + "extracted_requirement": "tblib>=1.3.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -7997,7 +7997,7 @@ }, { "purl": "pkg:pypi/tblib", - "extracted_requirement": ">=1.5.0", + "extracted_requirement": "tblib>=1.5.0", "scope": "install", "is_runtime": true, "is_optional": false, @@ -8018,7 +8018,7 @@ }, { "purl": "pkg:pypi/pyyaml", - "extracted_requirement": ">=3.10", + "extracted_requirement": "PyYAML>=3.10", "scope": "install", "is_runtime": true, "is_optional": false, @@ -8039,7 +8039,7 @@ }, { "purl": "pkg:pypi/kazoo", - "extracted_requirement": ">=1.3.1", + "extracted_requirement": "kazoo>=1.3.1", "scope": "install", "is_runtime": true, "is_optional": false, @@ -8060,7 +8060,7 @@ }, { "purl": "pkg:pypi/zstandard", - "extracted_requirement": "", + "extracted_requirement": "zstandard", "scope": "install", "is_runtime": true, "is_optional": false, diff --git a/tests/packagedcode/data/pypi/unpacked_wheel/daglib_wheel_extracted-expected.json b/tests/packagedcode/data/pypi/unpacked_wheel/daglib_wheel_extracted-expected.json index 98e2f982693..09e8e74e2cb 100644 --- a/tests/packagedcode/data/pypi/unpacked_wheel/daglib_wheel_extracted-expected.json +++ b/tests/packagedcode/data/pypi/unpacked_wheel/daglib_wheel_extracted-expected.json @@ -19,7 +19,7 @@ "extracted_requirement": "graphviz<0.21,>=0.20; extra == \"graphviz\"", "scope": "graphviz", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -33,7 +33,7 @@ "extracted_requirement": "ipycytoscape<2.0.0,>=1.3.3; extra == \"ipycytoscape\"", "scope": "ipycytoscape", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {}, @@ -281,7 +281,7 @@ "extracted_requirement": "graphviz<0.21,>=0.20; extra == \"graphviz\"", "scope": "graphviz", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -291,7 +291,7 @@ "extracted_requirement": "ipycytoscape<2.0.0,>=1.3.3; extra == \"ipycytoscape\"", "scope": "ipycytoscape", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/Jinja2-2.10.dist-info-expected.json b/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/Jinja2-2.10.dist-info-expected.json index c10fdd7846e..ea3d780dd54 100644 --- a/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/Jinja2-2.10.dist-info-expected.json +++ b/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/Jinja2-2.10.dist-info-expected.json @@ -642,7 +642,7 @@ "extracted_requirement": "Babel>=0.8; extra == \"i18n\"", "scope": "i18n", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/urllib3-1.26.4.dist-info-expected.json b/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/urllib3-1.26.4.dist-info-expected.json index 08e5b51102d..6a663432717 100644 --- a/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/urllib3-1.26.4.dist-info-expected.json +++ b/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.0/urllib3-1.26.4.dist-info-expected.json @@ -842,7 +842,7 @@ "extracted_requirement": "pyOpenSSL>=0.14; extra == \"secure\"", "scope": "secure", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -852,7 +852,7 @@ "extracted_requirement": "cryptography>=1.3.4; extra == \"secure\"", "scope": "secure", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -862,7 +862,7 @@ "extracted_requirement": "idna>=2.0.0; extra == \"secure\"", "scope": "secure", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -872,7 +872,7 @@ "extracted_requirement": "certifi; extra == \"secure\"", "scope": "secure", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -882,7 +882,7 @@ "extracted_requirement": "ipaddress; python_version == \"2.7\" and extra == \"secure\"", "scope": "secure", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -892,7 +892,7 @@ "extracted_requirement": "PySocks!=1.5.7,<2.0,>=1.5.6; extra == \"socks\"", "scope": "socks", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -902,7 +902,7 @@ "extracted_requirement": "brotlipy>=0.6.0; extra == \"brotli\"", "scope": "brotli", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.1/plugincode-21.1.21.dist-info-expected.json b/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.1/plugincode-21.1.21.dist-info-expected.json index 84e94391aef..2909e7a92d7 100644 --- a/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.1/plugincode-21.1.21.dist-info-expected.json +++ b/tests/packagedcode/data/pypi/unpacked_wheel/metadata-2.1/plugincode-21.1.21.dist-info-expected.json @@ -294,7 +294,7 @@ "extracted_requirement": "Sphinx>=3.3.1; extra == \"docs\"", "scope": "docs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -304,7 +304,7 @@ "extracted_requirement": "sphinx-rtd-theme>=0.5.0; extra == \"docs\"", "scope": "docs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -314,7 +314,7 @@ "extracted_requirement": "doc8>=0.8.1; extra == \"docs\"", "scope": "docs", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -324,7 +324,7 @@ "extracted_requirement": "pytest>=6; extra == \"testing\"", "scope": "testing", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} @@ -334,7 +334,7 @@ "extracted_requirement": "pytest-xdist>=2; extra == \"testing\"", "scope": "testing", "is_runtime": true, - "is_optional": false, + "is_optional": true, "is_resolved": false, "resolved_package": {}, "extra_data": {} diff --git a/tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines b/tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines index 5723b48d51d..676b6c62884 100644 --- a/tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines +++ b/tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines @@ -22,9 +22,9 @@ "system_environment": { "operating_system": "linux", "cpu_architecture": "64", - "platform": "Linux-4.15.0-189-generic-x86_64-with-debian-stretch-sid", - "platform_version": "#200~16.04.1-Ubuntu SMP Fri Jun 24 05:32:48 UTC 2022", - "python_version": "3.7.9 (default, Dec 6 2020, 11:48:06) \n[GCC 5.4.0 20160609]" + "platform": "Linux-5.10.102.1-microsoft-standard-WSL2-x86_64-with-glibc2.35", + "platform_version": "#1 SMP Wed Mar 2 00:30:59 UTC 2022", + "python_version": "3.10.5 (main, Jul 30 2022, 03:32:13) [GCC 11.2.0]" }, "spdx_license_list_version": "3.17", "files_count": 26 From 1539c49e252789981f64598c30879cf02c84dd25 Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 6 Sep 2022 12:48:23 -0700 Subject: [PATCH 12/54] Update CHANGELOG.rst #3083 Signed-off-by: Jono Yang --- CHANGELOG.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b28287c2a85..ba7fba9b5ea 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,23 @@ Package detection: - OpenWRT packages. - Yocto/BitBake .bb recipes. +- Update ``GemfileLockParser`` to track the gem which the Gemfile.lock is for, + which we assign to the new ``GemfileLockParser.primary_gem`` field. Update + ``GemfileLockHandler.parse()`` to handle the case where there is a primary gem + detected from a gemfile.lock. If there is a primary gem, a single ``Package`` + is created and the detected gem data within the gemfile.lock are assigned as + dependencies. If there is no primary gem, then all of the dependencies are + collected into Package with no name and yielded. + + https://github.com/nexB/scancode-toolkit/issues/3072 + +- Fix issue where dependencies were not reported when scanning an extracted + Python project by modifying ``BaseExtractedPythonLayout.assemble()`` to favor + using package data from a PKG-INFO file from an egg-info directory. Package + data from a PKG-INFO file from an egg-info directory contains the dependency + information collected from the requirements.txt file along side PKG-INFO. + + https://github.com/nexB/scancode-toolkit/issues/3083 License detection: ~~~~~~~~~~~~~~~~~~~ From ca173beef8e5c5b518df4908667333e102f5e64c Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Thu, 8 Sep 2022 16:37:30 -0700 Subject: [PATCH 13/54] Replace gemfileparser with gemfileparser2 Signed-off-by: Jono Yang --- requirements.txt | 2 +- setup.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index b5ec1195f54..0034ed5749e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,7 +23,7 @@ fasteners==0.17.3 fingerprints==1.0.3 ftfy==6.1.1 future==0.18.2 -gemfileparser==0.8.0 +gemfileparser2==0.9.0 html5lib==1.1 idna==3.3 importlib-metadata==4.12.0 diff --git a/setup.cfg b/setup.cfg index 09066b9f237..d4c36071186 100644 --- a/setup.cfg +++ b/setup.cfg @@ -75,7 +75,7 @@ install_requires = fasteners fingerprints >= 0.6.0 ftfy >= 6.0.0 - gemfileparser >= 0.7.0 + gemfileparser2 >= 0.9.0 html5lib importlib_metadata intbitset >= 3.0.0 From 28b53f3b3fc4e4f627492023487c25d9e39c492f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 08:45:07 +0200 Subject: [PATCH 14/54] Restore license texts of deprecated licenses Reference: https://github.com/nexB/scancode-licensedb/issues/21 Signed-off-by: Philippe Ombredanne --- .../data/licenses/ccrc-1.0.LICENSE | 47 ++++++++ .../data/licenses/gpl-2.0-classpath.LICENSE | 9 ++ ...gpl-2.0-independent-module-linking.LICENSE | 40 +++++++ .../data/licenses/gpl-2.0-library.LICENSE | 22 ++++ .../data/licenses/gpl-2.0-openjdk.LICENSE | 38 ++++++ .../licenses/gpl-2.0-oracle-openjdk.LICENSE | 28 +++++ .../data/licenses/ms-refl.LICENSE | 25 ++++ .../data/licenses/nunit-v2.LICENSE | 13 ++ .../data/licenses/osetpl-2.1.LICENSE | 113 ++++++++++++++++++ ...qt-company-exception-2017-lgpl-2.1.LICENSE | 20 ++++ .../data/licenses/sun-proprietary-jdk.LICENSE | 1 + .../licenses/w3c-software-20021231.LICENSE | 62 ++++++++++ .../data/licenses/wxwindows.LICENSE | 51 ++++++++ 13 files changed, 469 insertions(+) create mode 100644 src/licensedcode/data/licenses/ccrc-1.0.LICENSE create mode 100644 src/licensedcode/data/licenses/gpl-2.0-classpath.LICENSE create mode 100644 src/licensedcode/data/licenses/gpl-2.0-independent-module-linking.LICENSE create mode 100644 src/licensedcode/data/licenses/gpl-2.0-library.LICENSE create mode 100644 src/licensedcode/data/licenses/gpl-2.0-openjdk.LICENSE create mode 100644 src/licensedcode/data/licenses/gpl-2.0-oracle-openjdk.LICENSE create mode 100644 src/licensedcode/data/licenses/ms-refl.LICENSE create mode 100644 src/licensedcode/data/licenses/nunit-v2.LICENSE create mode 100644 src/licensedcode/data/licenses/osetpl-2.1.LICENSE create mode 100644 src/licensedcode/data/licenses/qt-company-exception-2017-lgpl-2.1.LICENSE create mode 100644 src/licensedcode/data/licenses/sun-proprietary-jdk.LICENSE create mode 100644 src/licensedcode/data/licenses/w3c-software-20021231.LICENSE create mode 100644 src/licensedcode/data/licenses/wxwindows.LICENSE diff --git a/src/licensedcode/data/licenses/ccrc-1.0.LICENSE b/src/licensedcode/data/licenses/ccrc-1.0.LICENSE new file mode 100644 index 00000000000..8bd39c49866 --- /dev/null +++ b/src/licensedcode/data/licenses/ccrc-1.0.LICENSE @@ -0,0 +1,47 @@ +Common Cure Rights Commitment +Version 1.0 + +Before filing or continuing to prosecute any legal proceeding or claim +(other than a Defensive Action) arising from termination of a Covered +License, we commit to extend to the person or entity ('you') accused +of violating the Covered License the following provisions regarding +cure and reinstatement, taken from GPL version 3. As used here, the +term 'this License' refers to the specific Covered License being +enforced. + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you + have received notice of violation of this License (for any work) + from that copyright holder, and you cure the violation prior to 30 + days after your receipt of the notice. + +We intend this Commitment to be irrevocable, and binding and +enforceable against us and assignees of or successors to our +copyrights. + +Definitions + +'Covered License' means the GNU General Public License, version 2 +(GPLv2), the GNU Lesser General Public License, version 2.1 +(LGPLv2.1), or the GNU Library General Public License, version 2 +(LGPLv2), all as published by the Free Software Foundation. + +'Defensive Action' means a legal proceeding or claim that We bring +against you in response to a prior proceeding or claim initiated by +you or your affiliate. + +'We' means each contributor to this repository as of the date of +inclusion of this file, including subsidiaries of a corporate +contributor. + +This work is available under a Creative Commons Attribution-ShareAlike +4.0 International license (https://creativecommons.org/licenses/by-sa/4.0/). + diff --git a/src/licensedcode/data/licenses/gpl-2.0-classpath.LICENSE b/src/licensedcode/data/licenses/gpl-2.0-classpath.LICENSE new file mode 100644 index 00000000000..7a1b3b49636 --- /dev/null +++ b/src/licensedcode/data/licenses/gpl-2.0-classpath.LICENSE @@ -0,0 +1,9 @@ +This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this library; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. + +As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gpl-2.0-independent-module-linking.LICENSE b/src/licensedcode/data/licenses/gpl-2.0-independent-module-linking.LICENSE new file mode 100644 index 00000000000..f5e6b036278 --- /dev/null +++ b/src/licensedcode/data/licenses/gpl-2.0-independent-module-linking.LICENSE @@ -0,0 +1,40 @@ +This library is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +This library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this library; see the file COPYING. If not, write to the Free +Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. + +The library is released under the GPL with the following exception: + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under terms +of your choice, provided that you also meet, for each linked independent +module, the terms and conditions of the license of that module. An +independent module is a module which is not derived from or based on +this library. If you modify this library, you may extend this exception +to your version of the library, but you are not obligated to do so. If +you do not wish to do so, delete this exception statement from your +version. + +Note The exception is changed to reflect the latest GNU Classpath +exception. Older versions of #ziplib did have another exception, but the +new one is clearer and it doesn't break compatibility with the old one. + +Bottom line In plain English this means you can use this library in +commercial closed-source applications. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gpl-2.0-library.LICENSE b/src/licensedcode/data/licenses/gpl-2.0-library.LICENSE new file mode 100644 index 00000000000..a8b05a54a8d --- /dev/null +++ b/src/licensedcode/data/licenses/gpl-2.0-library.LICENSE @@ -0,0 +1,22 @@ +The software in this package is distributed under the GNU General Public +License with the "Library Exception" described below. A copy of GNU +General Public License (GPL) is included in this distribution, in the +file LICENSE-GPL.txt. All the files distributed under GPL also include +the following special exception: + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under terms +of your choice, provided that you also meet, for each linked independent +module, the terms and conditions of the license of that module. An +independent module is a module which is not derived from or based on +this library. If you modify this library, you may extend this exception +to your version of the library, but you are not obligated to do so. If +you do not wish to do so, delete this exception statement from your +version. + +As such, this software can be used to run free as well as proprietary +applications and applets. Modifications made to the classes in this +distribution must however be distributed under the GPL, optionally with +the same exception as above. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gpl-2.0-openjdk.LICENSE b/src/licensedcode/data/licenses/gpl-2.0-openjdk.LICENSE new file mode 100644 index 00000000000..a6fb871b9a6 --- /dev/null +++ b/src/licensedcode/data/licenses/gpl-2.0-openjdk.LICENSE @@ -0,0 +1,38 @@ +This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this library; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +"CLASSPATH" EXCEPTION TO THE GPL VERSION 2 + +Certain source files distributed by Sun Microsystems, Inc. are subject to the following clarification and special exception to the GPL Version 2, but only where Sun has expressly included in the particular source file's header the words + +"Sun designates this particular file as subject to the "Classpath" exception as provided by Sun in the License file that accompanied this code." + +Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License Version 2 cover the whole combination. + +As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the GNU General Public License version 2 only ("GPL2"), with the following clarification and special exception. + +Linking this OpenJDK Code statically or dynamically with other code is making a combined work based on this library. Thus, the terms and conditions of GPL2 cover the whole combination. + +As a special exception, Sun gives you permission to link this OpenJDK Code with certain code licensed by Sun as indicated at http://openjdk.java.net/legal/exception-modules-2007-05-08.html ("Designated Exception Modules") to produce an executable, regardless of the license terms of the Designated Exception Modules, and to copy and distribute the resulting executable under GPL2, provided that the Designated Exception Modules continue to be governed by the licenses under which they were offered by Sun. + +As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to build an executable that includes those portions of necessary code that Sun could not provide under GPL2 (or that Sun has provided under GPL2 with the Classpath exception). If you modify or add to the OpenJDK code, that new GPL2 code may still be combined with Designated Exception Modules if the new code is made subject to this exception by its copyright holder. + +from http://openjdk.java.net/legal/exception-modules-2007-05-08.html +OpenJDK Designated Exception Modules +8 May 2007 +For purposes of those files in the OpenJDK distribution that are subject to the Assembly Exception, the following shall be deemed Designated Exception Modules: + +Those files in the OpenJDK distribution available at openjdk.java.net, openjdk.dev.java.net, and download.java.net to which Sun has applied the Classpath Exception, + +Any of your derivative works of #1 above, to the extent you license them under the GPLv2 with the Classpath Exception as defined in the OpenJDK distribution available at openjdk.java.net, openjdk.dev.java.net, or download.java.net, + +Any files in the OpenJDK distribution that are made available at openjdk.java.net, openjdk.dev.java.net, or download.java.net under a binary code license, and + +Any files in the OpenJDK distribution that are made available at openjdk.java.net, openjdk.dev.java.net, or download.java.net under an open source license other than GPL, and your derivatives thereof that are in compliance with the applicable open source license. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gpl-2.0-oracle-openjdk.LICENSE b/src/licensedcode/data/licenses/gpl-2.0-oracle-openjdk.LICENSE new file mode 100644 index 00000000000..fb1e85b4b33 --- /dev/null +++ b/src/licensedcode/data/licenses/gpl-2.0-oracle-openjdk.LICENSE @@ -0,0 +1,28 @@ +This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this library; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/ms-refl.LICENSE b/src/licensedcode/data/licenses/ms-refl.LICENSE new file mode 100644 index 00000000000..d39b1200332 --- /dev/null +++ b/src/licensedcode/data/licenses/ms-refl.LICENSE @@ -0,0 +1,25 @@ +This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. + +1. Definitions +The terms "reproduce," "reproduction" and "distribution" have the same meaning here as under U.S. copyright law. + +"You" means the licensee of the software. + +"Your company" means the company you worked for when you downloaded the software. + +"Reference use" means use of the software within your company as a reference, in read only form, for the sole purposes of debugging your products, maintaining your products, or enhancing the interoperability of your products with the software, and specifically excludes the right to distribute the software outside of your company. + +"Licensed patents" means any Licensor patent claims which read directly on the software as distributed by the Licensor under this license. + +2. Grant of Rights +(A) Copyright Grant- Subject to the terms of this license, the Licensor grants you a non-transferable, non-exclusive, worldwide, royalty-free copyright license to reproduce the software for reference use. + +(B) Patent Grant- Subject to the terms of this license, the Licensor grants you a non-transferable, non-exclusive, worldwide, royalty-free patent license under licensed patents for reference use. + +3. Limitations +(A) No Trademark License- This license does not grant you any rights to use the Licensor's name, + logo, or trademarks. + +(B) If you begin patent litigation against the Licensor over patents that you think may apply to the software (including a cross-claim or counterclaim in a lawsuit), your license to the software ends automatically. + +(C) The software is licensed "as-is." You bear the risk of using it. The Licensor gives no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the Licensor excludes the implied warranties of merchantability, fitness for a particular purpose and non-infringement. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/nunit-v2.LICENSE b/src/licensedcode/data/licenses/nunit-v2.LICENSE new file mode 100644 index 00000000000..5af222988b9 --- /dev/null +++ b/src/licensedcode/data/licenses/nunit-v2.LICENSE @@ -0,0 +1,13 @@ +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. + +Portions Copyright © 2002-2012 Charlie Poole +or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov +or Copyright © 2000-2002 Philip A. Craig + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/src/licensedcode/data/licenses/osetpl-2.1.LICENSE b/src/licensedcode/data/licenses/osetpl-2.1.LICENSE new file mode 100644 index 00000000000..f29dd5ceb31 --- /dev/null +++ b/src/licensedcode/data/licenses/osetpl-2.1.LICENSE @@ -0,0 +1,113 @@ +OSET Public License +(c) 2015 ALL RIGHTS RESERVED VERSION 2.1 + +THIS LICENSE DEFINES THE RIGHTS OF USE, REPRODUCTION, DISTRIBUTION, MODIFICATION, AND REDISTRIBUTION OF CERTAIN COVERED SOFTWARE (AS DEFINED BELOW) ORIGINALLY RELEASED BY THE OPEN SOURCE ELECTION TECHNOLOGY FOUNDATION (FORMERLY "THE OSDV FOUNDATION"). ANYONE WHO USES, REPRODUCES, DISTRIBUTES, MODIFIES, OR REDISTRIBUTES THE COVERED SOFTWARE, OR ANY PART THEREOF, IS BY THAT ACTION, ACCEPTING IN FULL THE TERMS CONTAINED IN THIS AGREEMENT. IF YOU DO NOT AGREE TO SUCH TERMS, YOU ARE NOT PERMITTED TO USE THE COVERED SOFTWARE. + +This license was prepared based on the Mozilla Public License ("MPL"), version 2.0. For annotation of the differences between this license and MPL 2.0, please see the OSET Foundation web site at www.OSETFoundation.org/public-license. + +The text of the license begins here: + +1. Definitions + +1.1 "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. +1.2 "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. +1.3 "Contribution" means Covered Software of a particular Contributor. +1.4 "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. +1.5 "Incompatible With Secondary Licenses" means: a. That the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or b. that the Covered Software was made available under the terms of version 1.x or earlier of the License, but not also under the terms of a Secondary License. +1.6 "Executable Form" means any form of the work other than Source Code Form. +1.7 "Larger Work" means a work that combines Covered Software with other material, in a separate file (or files) that is not Covered Software. +1.8 "License" means this document. +1.9 "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. +1.10 "Modifications" means any of the following: a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or b. any new file in Source Code Form that contains any Covered Software. +1.11 "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. +1.12 "Secondary License" means one of: the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. +1.13 "Source Code Form" means the form of the work preferred for making modifications. +1.14 "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means: (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + +2. License Grants and Conditions + +2.1 Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. + +2.2 Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. + +2.3 Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: a. for any code that a Contributor has removed from Covered Software; or b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or c. under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). + +2.4 Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). + +2.5 Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. + +2.6 Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7 Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. + +3. Responsibilities + +3.1 Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You must cause any of Your Modifications to carry prominent notices stating that You changed the files. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. + +3.2 Distribution of Executable Form If You distribute Covered Software in Executable Form then: +a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. + +3.3 Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). + +3.4 Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. + +3.5 Application of Additional Terms + +3.5.1 You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. +3.5.2 You may place additional conditions upon the rights granted in this License to the extent necessary due to statute, judicial order, regulation (including without limitation state and federal procurement regulation), national security, or public interest. Any such additional conditions must be clearly described in the notice provisions required under Section 3.4. Any alteration of the terms of this License will apply to all copies of the Covered Software distributed by You or by any downstream recipients that receive the Covered Software from You. + +4. Inability to Comply Due to Statute or Regulation If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation, then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the notices required under Section 3.4. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. + +5. Termination + +5.1 Failure to Comply The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60-days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30-days after Your receipt of the notice. + +5.2 Patent Infringement Claims If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. + +5.3 Additional Compliance Terms Notwithstanding the foregoing in this Section 5, for purposes of this Section, if You breach Section 3.1 (Distribution of Source Form), Section 3.2 (Distribution of Executable Form), Section 3.3 (Distribution of a Larger Work), or Section 3.4 (Notices), then becoming compliant as described in Section 5.1 must also include, no later than 30 days after receipt by You of notice of such violation by a Contributor, making the Covered Software available in Source Code Form as required by this License on a publicly available computer network for a period of no less than three (3) years. + +5.4 Contributor Remedies If You fail to comply with the terms of this License and do not thereafter become compliant in accordance with Section 5.1 and, if applicable, Section 5.3, then each Contributor reserves its right, in addition to any other rights it may have in law or in equity, to bring an action seeking injunctive relief, or damages for willful copyright or patent infringement (including without limitation damages for unjust enrichment, where available under law), for all actions in violation of rights that would otherwise have been granted under the terms of this License. + +5.5 End User License Agreements In the event of termination under this Section 5, all end user license agreements (excluding distributors and resellers), which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. + +6. Disclaimer of Warranty Covered Software is provided under this License on an "as is" basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. + +7. Limitation of Liability Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. + +9. Government Terms + +9.1 Commercial Item The Covered Software is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. + +9.2 No Sovereign Immunity The U.S. federal government and states that use or distribute Covered Software hereby waive their sovereign immunity with respect to enforcement of the provisions of this License. + +9.3 Choice of Law and Venue + +9.3.1 If You are a government of a state of the United States, or Your use of the Covered Software is pursuant to a procurement contract with such a state government, this License shall be governed by the law of such state, excluding its conflict-of-law provisions, and the adjudication of disputes relating to this License will be subject to the exclusive jurisdiction of the state and federal courts located in such state. +9.3.2 If You are an agency of the United States federal government, or Your use of the Covered Software is pursuant to a procurement contract with such an agency, this License shall be governed by federal law for all purposes, and the adjudication of disputes relating to this License will be subject to the exclusive jurisdiction of the federal courts located in Washington, D.C. +9.3.3 You may alter the terms of this Section 9.3 for this License as described in Section 3.5.2. + +9.4 Supremacy This Section 9 is in lieu of, and supersedes, any other Federal Acquisition Regulation, Defense Federal Acquisition Regulation, or other clause or provision that addresses government rights in computer software under this License. + +10. Miscellaneous This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation, which provides that the language of a contract shall be construed against the drafter, shall not be used to construe this License against a Contributor. + +11. Versions of the License + +11.1 New Versions The Open Source Election Technology Foundation ("OSET") (formerly known as the Open Source Digital Voting Foundation) is the steward of this License. Except as provided in Section 11.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. + +11.2 Effects of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. + +11.3 Modified Versions If You create software not governed by this License, and You want to create a new license for such software, You may create and use a modified version of this License if You rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). + +11.4 Distributing Source Code Form That is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. + +EXHIBIT A – Source Code Form License Notice + +This Source Code Form is subject to the terms of the OSET Public License, v.2.1 ("OSET-PL-2.1"). If a copy of the OPL was not distributed with this file, You can obtain one at: www.OSETFoundation.org/public-license. + +If it is not possible or desirable to put the Notice in a particular file, then You may include the Notice in a location (e.g., such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. + +EXHIBIT B - "Incompatible With Secondary License" Notice + +This Source Code Form is "Incompatible With Secondary Licenses", as defined by the OSET Public License, v.2.1. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/qt-company-exception-2017-lgpl-2.1.LICENSE b/src/licensedcode/data/licenses/qt-company-exception-2017-lgpl-2.1.LICENSE new file mode 100644 index 00000000000..ea61032cae9 --- /dev/null +++ b/src/licensedcode/data/licenses/qt-company-exception-2017-lgpl-2.1.LICENSE @@ -0,0 +1,20 @@ +As an additional permission to the GNU Lesser General Public License version +2.1, the object code form of a "work that uses the Library" may incorporate +material from a header file that is part of the Library. You may distribute +such object code under terms of your choice, provided that: + (i) the header files of the Library have not been modified; and + (ii) the incorporated material is limited to numerical parameters, data + structure layouts, accessors, macros, inline functions and + templates; and + (iii) you comply with the terms of Section 6 of the GNU Lesser General + Public License version 2.1. + +Moreover, you may apply this exception to a modified version of the Library, +provided that such modification does not involve copying material from the +Library into the modified Library's header files unless such material is +limited to (i) numerical parameters; (ii) data structure layouts; +(iii) accessors; and (iv) small macros, templates and inline functions of +five lines or less in length. + +Furthermore, you are not required to apply this additional permission to a +modified version of the Library. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/sun-proprietary-jdk.LICENSE b/src/licensedcode/data/licenses/sun-proprietary-jdk.LICENSE new file mode 100644 index 00000000000..e0dfc26dfc0 --- /dev/null +++ b/src/licensedcode/data/licenses/sun-proprietary-jdk.LICENSE @@ -0,0 +1 @@ +SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/w3c-software-20021231.LICENSE b/src/licensedcode/data/licenses/w3c-software-20021231.LICENSE new file mode 100644 index 00000000000..990a0284d0d --- /dev/null +++ b/src/licensedcode/data/licenses/w3c-software-20021231.LICENSE @@ -0,0 +1,62 @@ +W3C Software Notice and License + +Status: This license was applied to software published by W3C before 13 May, +2015. On 13 May, 2015, W3C adopted a revised and renamed "software and document" +license and applied the new license to all W3C documents that had previously +been made available under this license. The new license grants all permissions +that had been granted under this 2002 license. + +This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. + +License + +By obtaining, using and/or copying this work, you (the licensee) agree that you +have read, understood, and will comply with the following terms and conditions. + +Permission to copy, modify, and distribute this software and its documentation, +with or without modification, for any purpose and without fee or royalty is +hereby granted, provided that you include the following on ALL copies of the +software and documentation or portions thereof, including modifications: + + The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. + + Any pre-existing intellectual property disclaimers, notices, or terms and + conditions. If none exist, the W3C Software Short Notice should be included + (hypertext is preferred, text is permitted) within the body of any + redistributed or derivative code. + + Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from which + the code is derived.) + +Disclaimers + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE +NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT +THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY +PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. + +The name and trademarks of copyright holders may NOT be used in advertising or +publicity pertaining to the software without specific, written prior permission. +Title to copyright in this software and any associated documentation will at all +times remain with copyright holders. + +Notes + +This version: http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 + +This formulation of W3C's notice and license became active on December 31 2002. +This version removes the copyright ownership notice such that this license can +be used with materials other than those owned by the W3C, reflects that ERCIM is +now a host of the W3C, includes references to this specific dated version of the +license, and removes the ambiguous grant of "use". Otherwise, this version is +the same as the previous version and is written so as to preserve the Free +Software Foundation's assessment of GPL compatibility and OSI's certification +under the Open Source Definition. diff --git a/src/licensedcode/data/licenses/wxwindows.LICENSE b/src/licensedcode/data/licenses/wxwindows.LICENSE new file mode 100644 index 00000000000..64eb948e5e8 --- /dev/null +++ b/src/licensedcode/data/licenses/wxwindows.LICENSE @@ -0,0 +1,51 @@ + wxWindows Library Licence, Version 3.1 + ====================================== + + Copyright (C) 1998-2005 Julian Smart, Robert Roebling et al + + Everyone is permitted to copy and distribute verbatim copies + of this licence document, but changing it is not allowed. + + WXWINDOWS LIBRARY LICENCE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public Licence as published by + the Free Software Foundation; either version 2 of the Licence, or (at + your option) any later version. + + This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library + General Public Licence for more details. + + You should have received a copy of the GNU Library General Public Licence + along with this software, usually in a file named COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA. + + EXCEPTION NOTICE + + 1. As a special exception, the copyright holders of this library give + permission for additional uses of the text contained in this release of + the library as licenced under the wxWindows Library Licence, applying + either version 3.1 of the Licence, or (at your option) any later version of + the Licence as published by the copyright holders of version + 3.1 of the Licence document. + + 2. The exception is that you may use, copy, link, modify and distribute + under your own terms, binary object code versions of works based + on the Library. + + 3. If you copy code from files distributed under the terms of the GNU + General Public Licence or the GNU Library General Public Licence into a + copy of this library, as this licence permits, the exception does not + apply to the code that you add in this way. To avoid misleading anyone as + to the status of such modified files, you must delete this exception + notice from such code and/or adjust the licensing conditions notice + accordingly. + + 4. If you write modifications of your own for this library, it is your + choice whether to permit this exception to apply to your modifications. + If you do not wish that, you must delete the exception notice from such + code and/or adjust the licensing conditions notice accordingly. \ No newline at end of file From bf78589e5b8ba926991292e2ec81e39d188aedde Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 7 Sep 2022 16:29:10 +0530 Subject: [PATCH 15/54] Correct purl type for cocoapods #3081 * Modify purl type for cocoapods packages and deps from `pods` to the correct type `cocoapods`. Reference: https://github.com/nexB/scancode-toolkit/issues/3081 Signed-off-by: Ayan Sinha Mahapatra --- CHANGELOG.rst | 7 + src/packagedcode/cocoapods.py | 16 +- .../assemble/many-podspecs-expected.json | 144 +++++++++--------- .../assemble/multiple-podspec-expected.json | 56 +++---- .../assemble/single-podspec-expected.json | 44 +++--- .../assemble/solo/Podfile-expected.json | 2 +- .../assemble/solo/Podfile.lock-expected.json | 20 +-- .../solo/RxDataSources.podspec-expected.json | 12 +- .../braintree_ios_Podfile.lock.expected.json | 24 +-- ...rebaseAnalytics.podspec.json.expected.json | 4 +- .../podspec/BadgeHub.podspec.expected.json | 4 +- .../LoadingShimmer.podspec.expected.json | 4 +- .../podspec/PayTabsSDK.podspec.expected.json | 4 +- .../RxDataSources.podspec.expected.json | 4 +- .../podspec/Starscream.podspec.expected.json | 4 +- .../podspec/SwiftLib.podspec.expected.json | 4 +- ...utter_paytabs_bridge.podspec.expected.json | 4 +- .../kmmWebSocket.podspec.expected.json | 4 +- .../podspec/nanopb.podspec.expected.json | 4 +- tests/packagedcode/data/plugin/help.txt | 56 +++---- 20 files changed, 214 insertions(+), 207 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ba7fba9b5ea..aa34f91bbf3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -32,6 +32,13 @@ Package detection: https://github.com/nexB/scancode-toolkit/issues/3083 +- Fix issue where we were returning incorrect purl package ``type`` for cocoapods. + ``pods`` was being returned as a purl type for cocoapods, it should be + ``cocoapods`` instead. + https://github.com/package-url/purl-spec/blob/master/PURL-TYPES.rst#cocoapods + + https://github.com/nexB/scancode-toolkit/issues/3081 + License detection: ~~~~~~~~~~~~~~~~~~~ diff --git a/src/packagedcode/cocoapods.py b/src/packagedcode/cocoapods.py index 1668b8a5766..f3cb917023a 100644 --- a/src/packagedcode/cocoapods.py +++ b/src/packagedcode/cocoapods.py @@ -194,7 +194,7 @@ def assemble(cls, package_data, resource, codebase, package_adder): class PodspecHandler(BasePodHandler): datasource_id = 'cocoapods_podspec' path_patterns = ('*.podspec',) - default_package_type = 'pods' + default_package_type = 'cocoapods' default_primary_language = 'Objective-C' description = 'Cocoapods .podspec' documentation_url = 'https://guides.cocoapods.org/syntax/podspec.html' @@ -266,7 +266,7 @@ def parse(cls, location): class PodfileHandler(PodspecHandler): datasource_id = 'cocoapods_podfile' path_patterns = ('*Podfile',) - default_package_type = 'pods' + default_package_type = 'cocoapods' default_primary_language = 'Objective-C' description = 'Cocoapods Podfile' documentation_url = 'https://guides.cocoapods.org/using/the-podfile.html' @@ -275,7 +275,7 @@ class PodfileHandler(PodspecHandler): class PodfileLockHandler(BasePodHandler): datasource_id = 'cocoapods_podfile_lock' path_patterns = ('*Podfile.lock',) - default_package_type = 'pods' + default_package_type = 'cocoapods' default_primary_language = 'Objective-C' description = 'Cocoapods Podfile.lock' documentation_url = 'https://guides.cocoapods.org/using/the-podfile.html' @@ -336,7 +336,7 @@ def parse(cls, location): class PodspecJsonHandler(models.DatafileHandler): datasource_id = 'cocoapods_podspec_json' path_patterns = ('*.podspec.json',) - default_package_type = 'pods' + default_package_type = 'cocoapods' default_primary_language = 'Objective-C' description = 'Cocoapods .podspec.json' documentation_url = 'https://guides.cocoapods.org/syntax/podspec.html' @@ -523,14 +523,14 @@ def parse_dep_requirements(dep): For example: - >>> expected = PackageURL.from_string('pkg:pods/OHHTTPStubs@9.0.0'), '9.0.0' + >>> expected = PackageURL.from_string('pkg:cocoapods/OHHTTPStubs@9.0.0'), '9.0.0' >>> assert parse_dep_requirements('OHHTTPStubs (9.0.0)') == expected - >>> expected = PackageURL.from_string('pkg:pods/OHHTTPStubs/NSURLSession'), None + >>> expected = PackageURL.from_string('pkg:cocoapods/OHHTTPStubs/NSURLSession'), None >>> result = parse_dep_requirements('OHHTTPStubs/NSURLSession') >>> assert result == expected, result - >>> expected = PackageURL.from_string('pkg:pods/AFNetworking/Serialization@3.0.4'), '= 3.0.4' + >>> expected = PackageURL.from_string('pkg:cocoapods/AFNetworking/Serialization@3.0.4'), '= 3.0.4' >>> result = parse_dep_requirements(' AFNetworking/Serialization (= 3.0.4) ') >>> assert result == expected, result """ @@ -552,7 +552,7 @@ def parse_dep_requirements(dep): namespace = None purl = PackageURL( - type='pods', + type='cocoapods', namespace=namespace, name=name, version=version, diff --git a/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json b/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json index 6c709de1472..a93edae5573 100644 --- a/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/many-podspecs-expected.json @@ -1,7 +1,7 @@ { "dependencies": [ { - "purl": "pkg:pods/AWSCore@2.27.0", + "purl": "pkg:cocoapods/AWSCore@2.27.0", "extracted_requirement": "2.27.0", "scope": "requires", "is_runtime": false, @@ -9,13 +9,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/AWSCore@2.27.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/AWSCore@2.27.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/CwlCatchException@2.1.1", + "purl": "pkg:cocoapods/CwlCatchException@2.1.1", "extracted_requirement": "2.1.1", "scope": "requires", "is_runtime": false, @@ -23,13 +23,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/CwlCatchException@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/CwlCatchException@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/CwlCatchExceptionSupport@2.1.1", + "purl": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1", "extracted_requirement": "2.1.1", "scope": "requires", "is_runtime": false, @@ -37,13 +37,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/CwlCatchExceptionSupport@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/CwlMachBadInstructionHandler@2.1.0", + "purl": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0", "extracted_requirement": "2.1.0", "scope": "requires", "is_runtime": false, @@ -51,13 +51,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/CwlMachBadInstructionHandler@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/CwlPosixPreconditionTesting@2.1.0", + "purl": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0", "extracted_requirement": "2.1.0", "scope": "requires", "is_runtime": false, @@ -65,13 +65,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/CwlPosixPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/CwlPreconditionTesting@2.1.0", + "purl": "pkg:cocoapods/CwlPreconditionTesting@2.1.0", "extracted_requirement": "2.1.0", "scope": "requires", "is_runtime": false, @@ -79,13 +79,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/CwlPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/CwlPreconditionTesting@2.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/SwiftFormat/CLI@0.44.17", + "purl": "pkg:cocoapods/SwiftFormat/CLI@0.44.17", "extracted_requirement": "0.44.17", "scope": "requires", "is_runtime": false, @@ -93,13 +93,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/SwiftFormat/CLI@0.44.17?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/SwiftFormat/CLI@0.44.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/SwiftLint@0.46.2", + "purl": "pkg:cocoapods/SwiftLint@0.46.2", "extracted_requirement": "0.46.2", "scope": "requires", "is_runtime": false, @@ -107,15 +107,15 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/SwiftLint@0.46.2?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/SwiftLint@0.46.2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "many-podspecs/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" } ], "packages": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "CoreMLPredictionsPlugin", "version": "$AMPLIFY_VERSION", @@ -153,17 +153,17 @@ "repository_homepage_url": "https://cocoapods.org/pods/CoreMLPredictionsPlugin", "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/b/1/e/CoreMLPredictionsPlugin/$AMPLIFY_VERSION/CoreMLPredictionsPlugin.podspec.json", - "package_uid": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "many-podspecs/CoreMLPredictionsPlugin.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION" }, { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "Amplify", "version": "$AMPLIFY_VERSION", @@ -201,17 +201,17 @@ "repository_homepage_url": "https://cocoapods.org/pods/Amplify", "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/c/5/Amplify/$AMPLIFY_VERSION/Amplify.podspec.json", - "package_uid": "pkg:pods/Amplify@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/Amplify@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "many-podspecs/Amplify.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/Amplify@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/Amplify@%24AMPLIFY_VERSION" }, { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AmplifyPlugins", "version": "$AMPLIFY_VERSION", @@ -249,17 +249,17 @@ "repository_homepage_url": "https://cocoapods.org/pods/AmplifyPlugins", "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/1/8/AmplifyPlugins/$AMPLIFY_VERSION/AmplifyPlugins.podspec.json", - "package_uid": "pkg:pods/AmplifyPlugins@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/AmplifyPlugins@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "many-podspecs/AmplifyPlugins.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/AmplifyPlugins@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AmplifyPlugins@%24AMPLIFY_VERSION" }, { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AmplifyTestCommon", "version": "$AMPLIFY_VERSION", @@ -297,17 +297,17 @@ "repository_homepage_url": "https://cocoapods.org/pods/AmplifyTestCommon", "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/1/4/f/AmplifyTestCommon/$AMPLIFY_VERSION/AmplifyTestCommon.podspec.json", - "package_uid": "pkg:pods/AmplifyTestCommon@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/AmplifyTestCommon@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "many-podspecs/AmplifyTestCommon.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/AmplifyTestCommon@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AmplifyTestCommon@%24AMPLIFY_VERSION" }, { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AWSPluginsCore", "version": "$AMPLIFY_VERSION", @@ -345,17 +345,17 @@ "repository_homepage_url": "https://cocoapods.org/pods/AWSPluginsCore", "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/c/7/7/AWSPluginsCore/$AMPLIFY_VERSION/AWSPluginsCore.podspec.json", - "package_uid": "pkg:pods/AWSPluginsCore@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/AWSPluginsCore@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "many-podspecs/AWSPluginsCore.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/AWSPluginsCore@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AWSPluginsCore@%24AMPLIFY_VERSION" }, { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AWSPredictionsPlugin", "version": "$AMPLIFY_VERSION", @@ -393,14 +393,14 @@ "repository_homepage_url": "https://cocoapods.org/pods/AWSPredictionsPlugin", "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/6/0/AWSPredictionsPlugin/$AMPLIFY_VERSION/AWSPredictionsPlugin.podspec.json", - "package_uid": "pkg:pods/AWSPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/AWSPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "many-podspecs/AWSPredictionsPlugin.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/AWSPredictionsPlugin@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AWSPredictionsPlugin@%24AMPLIFY_VERSION" } ], "files": [ @@ -416,7 +416,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AWSPluginsCore", "version": "$AMPLIFY_VERSION", @@ -457,11 +457,11 @@ "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/c/7/7/AWSPluginsCore/$AMPLIFY_VERSION/AWSPluginsCore.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/AWSPluginsCore@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AWSPluginsCore@%24AMPLIFY_VERSION" } ], "for_packages": [ - "pkg:pods/AWSPluginsCore@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/AWSPluginsCore@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -470,7 +470,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AWSPredictionsPlugin", "version": "$AMPLIFY_VERSION", @@ -511,11 +511,11 @@ "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/6/0/AWSPredictionsPlugin/$AMPLIFY_VERSION/AWSPredictionsPlugin.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/AWSPredictionsPlugin@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AWSPredictionsPlugin@%24AMPLIFY_VERSION" } ], "for_packages": [ - "pkg:pods/AWSPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/AWSPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -524,7 +524,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "Amplify", "version": "$AMPLIFY_VERSION", @@ -565,11 +565,11 @@ "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/c/5/Amplify/$AMPLIFY_VERSION/Amplify.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/Amplify@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/Amplify@%24AMPLIFY_VERSION" } ], "for_packages": [ - "pkg:pods/Amplify@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/Amplify@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -578,7 +578,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AmplifyPlugins", "version": "$AMPLIFY_VERSION", @@ -619,11 +619,11 @@ "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/1/8/AmplifyPlugins/$AMPLIFY_VERSION/AmplifyPlugins.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/AmplifyPlugins@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AmplifyPlugins@%24AMPLIFY_VERSION" } ], "for_packages": [ - "pkg:pods/AmplifyPlugins@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/AmplifyPlugins@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -632,7 +632,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "AmplifyTestCommon", "version": "$AMPLIFY_VERSION", @@ -673,11 +673,11 @@ "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/1/4/f/AmplifyTestCommon/$AMPLIFY_VERSION/AmplifyTestCommon.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/AmplifyTestCommon@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/AmplifyTestCommon@%24AMPLIFY_VERSION" } ], "for_packages": [ - "pkg:pods/AmplifyTestCommon@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/AmplifyTestCommon@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -686,7 +686,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "CoreMLPredictionsPlugin", "version": "$AMPLIFY_VERSION", @@ -727,11 +727,11 @@ "repository_download_url": "https://github.com/aws-amplify/amplify-ios/archive/refs/tags/$AMPLIFY_VERSION.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/b/1/e/CoreMLPredictionsPlugin/$AMPLIFY_VERSION/CoreMLPredictionsPlugin.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION" + "purl": "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION" } ], "for_packages": [ - "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -740,7 +740,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -777,7 +777,7 @@ } ], "for_packages": [ - "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -786,7 +786,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -816,7 +816,7 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:pods/AWSCore@2.27.0", + "purl": "pkg:cocoapods/AWSCore@2.27.0", "extracted_requirement": "2.27.0", "scope": "requires", "is_runtime": false, @@ -826,7 +826,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/CwlCatchException@2.1.1", + "purl": "pkg:cocoapods/CwlCatchException@2.1.1", "extracted_requirement": "2.1.1", "scope": "requires", "is_runtime": false, @@ -836,7 +836,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/CwlCatchExceptionSupport@2.1.1", + "purl": "pkg:cocoapods/CwlCatchExceptionSupport@2.1.1", "extracted_requirement": "2.1.1", "scope": "requires", "is_runtime": false, @@ -846,7 +846,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/CwlMachBadInstructionHandler@2.1.0", + "purl": "pkg:cocoapods/CwlMachBadInstructionHandler@2.1.0", "extracted_requirement": "2.1.0", "scope": "requires", "is_runtime": false, @@ -856,7 +856,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/CwlPosixPreconditionTesting@2.1.0", + "purl": "pkg:cocoapods/CwlPosixPreconditionTesting@2.1.0", "extracted_requirement": "2.1.0", "scope": "requires", "is_runtime": false, @@ -866,7 +866,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/CwlPreconditionTesting@2.1.0", + "purl": "pkg:cocoapods/CwlPreconditionTesting@2.1.0", "extracted_requirement": "2.1.0", "scope": "requires", "is_runtime": false, @@ -876,7 +876,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/SwiftFormat/CLI@0.44.17", + "purl": "pkg:cocoapods/SwiftFormat/CLI@0.44.17", "extracted_requirement": "0.44.17", "scope": "requires", "is_runtime": false, @@ -886,7 +886,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/SwiftLint@0.46.2", + "purl": "pkg:cocoapods/SwiftLint@0.46.2", "extracted_requirement": "0.46.2", "scope": "requires", "is_runtime": false, @@ -904,7 +904,7 @@ } ], "for_packages": [ - "pkg:pods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/CoreMLPredictionsPlugin@%24AMPLIFY_VERSION?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, diff --git a/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json b/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json index a2b4c3ce43e..5c521c22a66 100644 --- a/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/multiple-podspec-expected.json @@ -1,7 +1,7 @@ { "dependencies": [ { - "purl": "pkg:pods/boost@1.76.0", + "purl": "pkg:cocoapods/boost@1.76.0", "extracted_requirement": "1.76.0", "scope": "requires", "is_runtime": false, @@ -9,13 +9,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "multiple-podspec/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/Yoga@1.14.0", + "purl": "pkg:cocoapods/Yoga@1.14.0", "extracted_requirement": "1.14.0", "scope": "requires", "is_runtime": false, @@ -23,13 +23,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "multiple-podspec/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/YogaKit@1.18.1", + "purl": "pkg:cocoapods/YogaKit@1.18.1", "extracted_requirement": "1.18.1", "scope": "requires", "is_runtime": false, @@ -37,15 +37,15 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "multiple-podspec/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" } ], "packages": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -83,17 +83,17 @@ "repository_homepage_url": "https://cocoapods.org/pods/RxDataSources", "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", - "package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "multiple-podspec/RxDataSources.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" }, { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "Differentiator", "version": "4.0.1", @@ -131,14 +131,14 @@ "repository_homepage_url": "https://cocoapods.org/pods/Differentiator", "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/9/8/Differentiator/4.0.1/Differentiator.podspec.json", - "package_uid": "pkg:pods/Differentiator@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/Differentiator@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "multiple-podspec/Differentiator.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/Differentiator@4.0.1" + "purl": "pkg:cocoapods/Differentiator@4.0.1" } ], "files": [ @@ -154,7 +154,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "Differentiator", "version": "4.0.1", @@ -195,11 +195,11 @@ "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/9/8/Differentiator/4.0.1/Differentiator.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/Differentiator@4.0.1" + "purl": "pkg:cocoapods/Differentiator@4.0.1" } ], "for_packages": [ - "pkg:pods/Differentiator@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/Differentiator@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -208,7 +208,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -245,7 +245,7 @@ } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -254,7 +254,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -284,7 +284,7 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:pods/boost@1.76.0", + "purl": "pkg:cocoapods/boost@1.76.0", "extracted_requirement": "1.76.0", "scope": "requires", "is_runtime": false, @@ -294,7 +294,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/Yoga@1.14.0", + "purl": "pkg:cocoapods/Yoga@1.14.0", "extracted_requirement": "1.14.0", "scope": "requires", "is_runtime": false, @@ -304,7 +304,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/YogaKit@1.18.1", + "purl": "pkg:cocoapods/YogaKit@1.18.1", "extracted_requirement": "1.18.1", "scope": "requires", "is_runtime": false, @@ -322,7 +322,7 @@ } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -331,7 +331,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -372,11 +372,11 @@ "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] } diff --git a/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json b/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json index 5dae9ed326d..0f492b3821b 100644 --- a/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/single-podspec-expected.json @@ -1,7 +1,7 @@ { "dependencies": [ { - "purl": "pkg:pods/boost@1.76.0", + "purl": "pkg:cocoapods/boost@1.76.0", "extracted_requirement": "1.76.0", "scope": "requires", "is_runtime": false, @@ -9,13 +9,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "single-podspec/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/Yoga@1.14.0", + "purl": "pkg:cocoapods/Yoga@1.14.0", "extracted_requirement": "1.14.0", "scope": "requires", "is_runtime": false, @@ -23,13 +23,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "single-podspec/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/YogaKit@1.18.1", + "purl": "pkg:cocoapods/YogaKit@1.18.1", "extracted_requirement": "1.18.1", "scope": "requires", "is_runtime": false, @@ -37,15 +37,15 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "single-podspec/Podfile.lock", "datasource_id": "cocoapods_podfile_lock" } ], "packages": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -83,14 +83,14 @@ "repository_homepage_url": "https://cocoapods.org/pods/RxDataSources", "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", - "package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "single-podspec/RxDataSources.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" } ], "files": [ @@ -106,7 +106,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -143,7 +143,7 @@ } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -152,7 +152,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -182,7 +182,7 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:pods/boost@1.76.0", + "purl": "pkg:cocoapods/boost@1.76.0", "extracted_requirement": "1.76.0", "scope": "requires", "is_runtime": false, @@ -192,7 +192,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/Yoga@1.14.0", + "purl": "pkg:cocoapods/Yoga@1.14.0", "extracted_requirement": "1.14.0", "scope": "requires", "is_runtime": false, @@ -202,7 +202,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/YogaKit@1.18.1", + "purl": "pkg:cocoapods/YogaKit@1.18.1", "extracted_requirement": "1.18.1", "scope": "requires", "is_runtime": false, @@ -220,7 +220,7 @@ } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] }, @@ -229,7 +229,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -270,11 +270,11 @@ "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] } diff --git a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json index 760e512382a..5b4d45b50cf 100644 --- a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile-expected.json @@ -7,7 +7,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, diff --git a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json index 7b80ef5418c..a7f6893e1a1 100644 --- a/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/solo/Podfile.lock-expected.json @@ -1,7 +1,7 @@ { "dependencies": [ { - "purl": "pkg:pods/boost@1.76.0", + "purl": "pkg:cocoapods/boost@1.76.0", "extracted_requirement": "1.76.0", "scope": "requires", "is_runtime": false, @@ -9,13 +9,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/boost@1.76.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, "datafile_path": "Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/Yoga@1.14.0", + "purl": "pkg:cocoapods/Yoga@1.14.0", "extracted_requirement": "1.14.0", "scope": "requires", "is_runtime": false, @@ -23,13 +23,13 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/Yoga@1.14.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, "datafile_path": "Podfile.lock", "datasource_id": "cocoapods_podfile_lock" }, { - "purl": "pkg:pods/YogaKit@1.18.1", + "purl": "pkg:cocoapods/YogaKit@1.18.1", "extracted_requirement": "1.18.1", "scope": "requires", "is_runtime": false, @@ -37,7 +37,7 @@ "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:pods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:cocoapods/YogaKit@1.18.1?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": null, "datafile_path": "Podfile.lock", "datasource_id": "cocoapods_podfile_lock" @@ -50,7 +50,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -80,7 +80,7 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:pods/boost@1.76.0", + "purl": "pkg:cocoapods/boost@1.76.0", "extracted_requirement": "1.76.0", "scope": "requires", "is_runtime": false, @@ -90,7 +90,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/Yoga@1.14.0", + "purl": "pkg:cocoapods/Yoga@1.14.0", "extracted_requirement": "1.14.0", "scope": "requires", "is_runtime": false, @@ -100,7 +100,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/YogaKit@1.18.1", + "purl": "pkg:cocoapods/YogaKit@1.18.1", "extracted_requirement": "1.18.1", "scope": "requires", "is_runtime": false, diff --git a/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json b/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json index 89b50cd066c..2b139498d31 100644 --- a/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json +++ b/tests/packagedcode/data/cocoapods/assemble/solo/RxDataSources.podspec-expected.json @@ -2,7 +2,7 @@ "dependencies": [], "packages": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -40,14 +40,14 @@ "repository_homepage_url": "https://cocoapods.org/pods/RxDataSources", "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", - "package_uid": "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "package_uid": "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_paths": [ "RxDataSources.podspec" ], "datasource_ids": [ "cocoapods_podspec" ], - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" } ], "files": [ @@ -56,7 +56,7 @@ "type": "file", "package_data": [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -97,11 +97,11 @@ "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" } ], "for_packages": [ - "pkg:pods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" + "pkg:cocoapods/RxDataSources@4.0.1?uuid=fixed-uid-done-for-testing-5642512d1758" ], "scan_errors": [] } diff --git a/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json b/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json index 88867744664..1c983e37a86 100644 --- a/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json +++ b/tests/packagedcode/data/cocoapods/podfile.lock/braintree_ios_Podfile.lock.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": null, "version": null, @@ -30,7 +30,7 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:pods/Expecta@1.0.6", + "purl": "pkg:cocoapods/Expecta@1.0.6", "extracted_requirement": "1.0.6", "scope": "requires", "is_runtime": false, @@ -40,7 +40,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/InAppSettingsKit@3.1.4", + "purl": "pkg:cocoapods/InAppSettingsKit@3.1.4", "extracted_requirement": "3.1.4", "scope": "requires", "is_runtime": false, @@ -50,7 +50,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OCMock@3.7.1", + "purl": "pkg:cocoapods/OCMock@3.7.1", "extracted_requirement": "3.7.1", "scope": "requires", "is_runtime": false, @@ -60,7 +60,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OHHTTPStubs@9.0.0", + "purl": "pkg:cocoapods/OHHTTPStubs@9.0.0", "extracted_requirement": "9.0.0", "scope": "requires", "is_runtime": false, @@ -70,7 +70,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OHHTTPStubs/Core@9.0.0", + "purl": "pkg:cocoapods/OHHTTPStubs/Core@9.0.0", "extracted_requirement": "9.0.0", "scope": "requires", "is_runtime": false, @@ -80,7 +80,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OHHTTPStubs/Default@9.0.0", + "purl": "pkg:cocoapods/OHHTTPStubs/Default@9.0.0", "extracted_requirement": "9.0.0", "scope": "requires", "is_runtime": false, @@ -90,7 +90,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OHHTTPStubs/JSON@9.0.0", + "purl": "pkg:cocoapods/OHHTTPStubs/JSON@9.0.0", "extracted_requirement": "9.0.0", "scope": "requires", "is_runtime": false, @@ -100,7 +100,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OHHTTPStubs/NSURLSession@9.0.0", + "purl": "pkg:cocoapods/OHHTTPStubs/NSURLSession@9.0.0", "extracted_requirement": "9.0.0", "scope": "requires", "is_runtime": false, @@ -110,7 +110,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/OHHTTPStubs/OHPathHelpers@9.0.0", + "purl": "pkg:cocoapods/OHHTTPStubs/OHPathHelpers@9.0.0", "extracted_requirement": "9.0.0", "scope": "requires", "is_runtime": false, @@ -120,7 +120,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/Specta@1.0.7", + "purl": "pkg:cocoapods/Specta@1.0.7", "extracted_requirement": "1.0.7", "scope": "requires", "is_runtime": false, @@ -130,7 +130,7 @@ "extra_data": {} }, { - "purl": "pkg:pods/xcbeautify@0.8.1", + "purl": "pkg:cocoapods/xcbeautify@0.8.1", "extracted_requirement": "0.8.1", "scope": "requires", "is_runtime": false, diff --git a/tests/packagedcode/data/cocoapods/podspec.json/FirebaseAnalytics.podspec.json.expected.json b/tests/packagedcode/data/cocoapods/podspec.json/FirebaseAnalytics.podspec.json.expected.json index 76d4ab58c3a..293c845993d 100644 --- a/tests/packagedcode/data/cocoapods/podspec.json/FirebaseAnalytics.podspec.json.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec.json/FirebaseAnalytics.podspec.json.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "FirebaseAnalytics", "version": "8.1.1", @@ -41,6 +41,6 @@ "repository_download_url": "https://firebase.google.com/features/analytics//archive/8.1.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/e/2/1/FirebaseAnalytics/8.1.1/FirebaseAnalytics.podspec.json", "datasource_id": "cocoapods_podspec_json", - "purl": "pkg:pods/FirebaseAnalytics@8.1.1" + "purl": "pkg:cocoapods/FirebaseAnalytics@8.1.1" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json index c6ca7213439..4d6755e53f4 100644 --- a/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/BadgeHub.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "BadgeHub", "version": "0.1.1", @@ -41,6 +41,6 @@ "repository_download_url": "https://github.com/jogendra/BadgeHub/archive/refs/tags/0.1.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/7/b/b/BadgeHub/0.1.1/BadgeHub.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/BadgeHub@0.1.1" + "purl": "pkg:cocoapods/BadgeHub@0.1.1" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json index c9ad61ec04c..c2af7251c5a 100644 --- a/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/LoadingShimmer.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "LoadingShimmer", "version": "1.0.3", @@ -41,6 +41,6 @@ "repository_download_url": "https://github.com/jogendra/LoadingShimmer/archive/refs/tags/1.0.3.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/7/6/8/LoadingShimmer/1.0.3/LoadingShimmer.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/LoadingShimmer@1.0.3" + "purl": "pkg:cocoapods/LoadingShimmer@1.0.3" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/PayTabsSDK.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/PayTabsSDK.podspec.expected.json index 606b26813ae..00507088017 100644 --- a/tests/packagedcode/data/cocoapods/podspec/PayTabsSDK.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/PayTabsSDK.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "PayTabsSDK", "version": "6.1.18", @@ -41,6 +41,6 @@ "repository_download_url": "https://github.com/paytabscom/paytabs-ios-library-sample/archive/refs/tags/6.1.18.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/b/5/f/PayTabsSDK/6.1.18/PayTabsSDK.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/PayTabsSDK@6.1.18" + "purl": "pkg:cocoapods/PayTabsSDK@6.1.18" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/RxDataSources.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/RxDataSources.podspec.expected.json index 09ba749d667..560872924fe 100644 --- a/tests/packagedcode/data/cocoapods/podspec/RxDataSources.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/RxDataSources.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "RxDataSources", "version": "4.0.1", @@ -41,6 +41,6 @@ "repository_download_url": "https://github.com/RxSwiftCommunity/RxDataSources/archive/refs/tags/4.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/9/a/4/RxDataSources/4.0.1/RxDataSources.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/RxDataSources@4.0.1" + "purl": "pkg:cocoapods/RxDataSources@4.0.1" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json index 3009b84faec..6dd2f9606c1 100644 --- a/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/Starscream.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "Starscream", "version": "4.0.3", @@ -48,6 +48,6 @@ "repository_download_url": "https://github.com/daltoniam/Starscream/archive/refs/tags/4.0.3.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/2/2/f/Starscream/4.0.3/Starscream.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/Starscream@4.0.3" + "purl": "pkg:cocoapods/Starscream@4.0.3" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json index 9397bdf2a34..8ccf7facec1 100644 --- a/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/SwiftLib.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "SwiftLib", "version": "0.0.1", @@ -41,6 +41,6 @@ "repository_download_url": "https://github.com/alizainprasla/swiftlib/archive/refs/tags/0.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/c/9/1/SwiftLib/0.0.1/SwiftLib.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/SwiftLib@0.0.1" + "purl": "pkg:cocoapods/SwiftLib@0.0.1" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/flutter_paytabs_bridge.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/flutter_paytabs_bridge.podspec.expected.json index 1b131e24698..694032e4930 100644 --- a/tests/packagedcode/data/cocoapods/podspec/flutter_paytabs_bridge.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/flutter_paytabs_bridge.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "flutter_paytabs_bridge", "version": "2.2.5", @@ -41,6 +41,6 @@ "repository_download_url": "./archive/refs/tags/2.2.5.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/5/1/4/flutter_paytabs_bridge/2.2.5/flutter_paytabs_bridge.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/flutter_paytabs_bridge@2.2.5" + "purl": "pkg:cocoapods/flutter_paytabs_bridge@2.2.5" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/kmmWebSocket.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/kmmWebSocket.podspec.expected.json index 930c5be1eac..2946763f187 100644 --- a/tests/packagedcode/data/cocoapods/podspec/kmmWebSocket.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/kmmWebSocket.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "kmmWebSocket", "version": "1.0.1", @@ -41,6 +41,6 @@ "repository_download_url": "Not Published/archive/refs/tags/1.0.1.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/2/3/c/kmmWebSocket/1.0.1/kmmWebSocket.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/kmmWebSocket@1.0.1" + "purl": "pkg:cocoapods/kmmWebSocket@1.0.1" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json b/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json index dd512dbb66f..a9f70b21692 100644 --- a/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json +++ b/tests/packagedcode/data/cocoapods/podspec/nanopb.podspec.expected.json @@ -1,6 +1,6 @@ [ { - "type": "pods", + "type": "cocoapods", "namespace": null, "name": "nanopb", "version": "1.30905.0", @@ -41,6 +41,6 @@ "repository_download_url": "https://github.com/nanopb/nanopb/archive/refs/tags/1.30905.0.zip", "api_data_url": "https://raw.githubusercontent.com/CocoaPods/Specs/blob/master/Specs/6/1/e/nanopb/1.30905.0/nanopb.podspec.json", "datasource_id": "cocoapods_podspec", - "purl": "pkg:pods/nanopb@1.30905.0" + "purl": "pkg:cocoapods/nanopb@1.30905.0" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/plugin/help.txt b/tests/packagedcode/data/plugin/help.txt index 053ac55023d..f594c5ff88c 100644 --- a/tests/packagedcode/data/plugin/help.txt +++ b/tests/packagedcode/data/plugin/help.txt @@ -139,6 +139,34 @@ Package type: chrome description: Chrome extension path_patterns: '*.crx' -------------------------------------------- +Package type: cocoapods + datasource_id: cocoapods_podfile + documentation URL: https://guides.cocoapods.org/using/the-podfile.html + primary language: Objective-C + description: Cocoapods Podfile + path_patterns: '*Podfile' +-------------------------------------------- +Package type: cocoapods + datasource_id: cocoapods_podfile_lock + documentation URL: https://guides.cocoapods.org/using/the-podfile.html + primary language: Objective-C + description: Cocoapods Podfile.lock + path_patterns: '*Podfile.lock' +-------------------------------------------- +Package type: cocoapods + datasource_id: cocoapods_podspec + documentation URL: https://guides.cocoapods.org/syntax/podspec.html + primary language: Objective-C + description: Cocoapods .podspec + path_patterns: '*.podspec' +-------------------------------------------- +Package type: cocoapods + datasource_id: cocoapods_podspec_json + documentation URL: https://guides.cocoapods.org/syntax/podspec.html + primary language: Objective-C + description: Cocoapods .podspec.json + path_patterns: '*.podspec.json' +-------------------------------------------- Package type: composer datasource_id: php_composer_json documentation URL: https://getcomposer.org/doc/04-schema.md @@ -573,34 +601,6 @@ Package type: opam description: Ocaml Opam file path_patterns: '*opam' -------------------------------------------- -Package type: pods - datasource_id: cocoapods_podfile - documentation URL: https://guides.cocoapods.org/using/the-podfile.html - primary language: Objective-C - description: Cocoapods Podfile - path_patterns: '*Podfile' --------------------------------------------- -Package type: pods - datasource_id: cocoapods_podfile_lock - documentation URL: https://guides.cocoapods.org/using/the-podfile.html - primary language: Objective-C - description: Cocoapods Podfile.lock - path_patterns: '*Podfile.lock' --------------------------------------------- -Package type: pods - datasource_id: cocoapods_podspec - documentation URL: https://guides.cocoapods.org/syntax/podspec.html - primary language: Objective-C - description: Cocoapods .podspec - path_patterns: '*.podspec' --------------------------------------------- -Package type: pods - datasource_id: cocoapods_podspec_json - documentation URL: https://guides.cocoapods.org/syntax/podspec.html - primary language: Objective-C - description: Cocoapods .podspec.json - path_patterns: '*.podspec.json' --------------------------------------------- Package type: pubspec datasource_id: pubspec_lock documentation URL: https://web.archive.org/web/20220330081004/https://gpalma.pt/blog/what-is-the-pubspec-lock/ From aaaa67fc264d2bf4a4616f295e2807eddfda7fc4 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:38:27 +0200 Subject: [PATCH 16/54] Format licenses metadata Signed-off-by: Philippe Ombredanne --- .../data/licenses/389-exception.yml | 1 + src/licensedcode/data/licenses/afl-3.0.yml | 2 +- .../data/licenses/agpl-1.0-plus.yml | 15 +++++------ src/licensedcode/data/licenses/agpl-1.0.yml | 2 +- .../data/licenses/agpl-3.0-plus.yml | 10 +++---- src/licensedcode/data/licenses/agpl-3.0.yml | 2 +- src/licensedcode/data/licenses/apache-1.1.yml | 6 ++--- .../data/licenses/apache-patent-exception.yml | 2 +- src/licensedcode/data/licenses/apsl-2.0.yml | 2 +- .../data/licenses/arphic-public.yml | 1 - .../data/licenses/array-input-method-pl.yml | 11 ++++---- .../data/licenses/artistic-1.0.yml | 2 +- .../data/licenses/artistic-2.0.yml | 4 +-- .../data/licenses/artistic-dist-1.0.yml | 6 ++--- src/licensedcode/data/licenses/asn1.yml | 4 +-- .../data/licenses/bacula-exception.yml | 5 ++-- .../data/licenses/baekmuk-fonts.yml | 5 ++-- src/licensedcode/data/licenses/bigdigits.yml | 4 +-- src/licensedcode/data/licenses/bitstream.yml | 4 ++- .../data/licenses/bitwarden-1.0.yml | 2 +- .../data/licenses/bsd-3-clause-fda.yml | 2 +- .../data/licenses/bsd-4-clause-shortened.yml | 3 +-- src/licensedcode/data/licenses/bsd-new.yml | 2 +- .../data/licenses/bsd-original-uc.yml | 4 +-- .../data/licenses/bsd-original-voices.yml | 4 +-- src/licensedcode/data/licenses/bsd-top.yml | 2 +- .../data/licenses/bzip2-libbzip-2010.yml | 4 +-- .../data/licenses/ca-tosl-1.1.yml | 2 +- .../data/licenses/cc-by-nc-nd-3.0-igo.yml | 3 +-- .../data/licenses/cc-by-sa-2.0-uk.yml | 5 ++-- src/licensedcode/data/licenses/cddl-1.0.yml | 2 +- .../data/licenses/cecill-2.0-fr.yml | 2 +- .../data/licenses/cecill-2.1-fr.yml | 2 +- .../data/licenses/chartdirector-6.0.yml | 4 +-- .../data/licenses/cncf-corporate-cla-1.0.yml | 3 +-- .../data/licenses/cncf-individual-cla-1.0.yml | 3 +-- .../data/licenses/cnri-python-1.6.yml | 2 +- .../licenses/code-credit-license-1.0.1.yml | 5 ++-- src/licensedcode/data/licenses/colt.yml | 4 +-- .../data/licenses/commercial-license.yml | 2 +- src/licensedcode/data/licenses/condor-1.1.yml | 4 +-- src/licensedcode/data/licenses/cosli.yml | 6 ++--- src/licensedcode/data/licenses/cpal-1.0.yml | 2 +- src/licensedcode/data/licenses/cpl-1.0.yml | 2 +- src/licensedcode/data/licenses/csl-1.0.yml | 4 +-- .../data/licenses/cua-opl-1.0.yml | 2 +- src/licensedcode/data/licenses/cups.yml | 6 ++--- .../data/licenses/d-fsl-1.0-en.yml | 4 +-- .../data/licenses/digirule-foss-exception.yml | 2 +- .../data/licenses/divx-open-1.0.yml | 4 +-- .../data/licenses/divx-open-2.1.yml | 4 +-- .../data/licenses/dl-de-by-1-0-en.yml | 2 +- .../data/licenses/dl-de-by-2-0-en.yml | 4 +-- .../data/licenses/dl-de-by-nc-1-0-en.yml | 2 +- .../data/licenses/dropbear-2016.yml | 8 +++--- src/licensedcode/data/licenses/dropbear.yml | 10 +++---- src/licensedcode/data/licenses/ecl-1.0.yml | 2 +- src/licensedcode/data/licenses/ecl-2.0.yml | 2 +- src/licensedcode/data/licenses/ecosrh-1.1.yml | 4 +-- src/licensedcode/data/licenses/efl-1.0.yml | 2 +- src/licensedcode/data/licenses/efl-2.0.yml | 2 +- .../data/licenses/elastic-license-v2.yml | 2 +- .../data/licenses/enhydra-1.1.yml | 4 +-- .../data/licenses/entessa-1.0.yml | 4 +-- src/licensedcode/data/licenses/epl-1.0.yml | 2 +- .../data/licenses/eu-datagrid.yml | 6 ++--- src/licensedcode/data/licenses/eupl-1.1.yml | 2 +- .../data/licenses/fastbuild-2012-2020.yml | 9 +++---- .../data/licenses/frameworx-1.0.yml | 4 +-- .../data/licenses/fraunhofer-iso-14496-10.yml | 4 +-- .../data/licenses/free-unknown.yml | 4 +-- src/licensedcode/data/licenses/freemarker.yml | 4 +-- src/licensedcode/data/licenses/fsf-ap.yml | 2 +- .../data/licenses/generic-cla.yml | 4 +-- .../data/licenses/generic-exception.yml | 6 ++--- .../licenses/generic-export-compliance.yml | 4 +-- .../data/licenses/generic-tos.yml | 4 +-- .../data/licenses/generic-trademark.yml | 5 ++-- .../data/licenses/geoff-kuenning-1993.yml | 4 +-- src/licensedcode/data/licenses/glwtpl.yml | 5 ++-- .../data/licenses/gpl-1.0-plus.yml | 9 +++---- .../data/licenses/gpl-2.0-plus.yml | 9 +++---- src/licensedcode/data/licenses/gpl-2.0.yml | 25 +++++++----------- .../data/licenses/gpl-3.0-plus.yml | 12 ++++----- src/licensedcode/data/licenses/gpl-3.0.yml | 2 +- src/licensedcode/data/licenses/gsoap-1.3a.yml | 4 +-- src/licensedcode/data/licenses/gsoap-1.3b.yml | 4 +-- src/licensedcode/data/licenses/hs-regexp.yml | 2 +- src/licensedcode/data/licenses/ibmpl-1.0.yml | 2 +- src/licensedcode/data/licenses/ietf-trust.yml | 6 ++--- .../data/licenses/indiana-extreme-1.2.yml | 4 +-- .../data/licenses/indiana-extreme.yml | 4 +-- .../data/licenses/info-zip-1997-10.yml | 6 ++--- .../data/licenses/inner-net-2.0.yml | 4 +-- .../data/licenses/intel-bsd-2-clause.yml | 4 +-- src/licensedcode/data/licenses/intel-bsd.yml | 4 +-- .../data/licenses/interbase-1.0.yml | 4 +-- src/licensedcode/data/licenses/jasper-1.0.yml | 4 +-- .../data/licenses/jelurida-public-1.1.yml | 5 ++-- src/licensedcode/data/licenses/json.yml | 1 - src/licensedcode/data/licenses/jython.yml | 4 +-- .../data/licenses/katharos-0.1.0.yml | 7 +++-- src/licensedcode/data/licenses/kerberos.yml | 4 +-- .../licenses/kicad-libraries-exception.yml | 9 +++---- src/licensedcode/data/licenses/lbnl-bsd.yml | 7 +++-- .../data/licenses/leap-motion-sdk-2019.yml | 11 ++++---- .../data/licenses/lgpl-2.0-plus.yml | 9 +++---- .../data/licenses/lgpl-2.1-plus.yml | 9 +++---- src/licensedcode/data/licenses/lgpl-2.1.yml | 2 +- src/licensedcode/data/licenses/lppl-1.3c.yml | 2 +- .../data/licenses/lucent-pl-1.0.yml | 2 +- .../data/licenses/lucent-pl-1.02.yml | 2 +- .../data/licenses/mcrae-pl-4-r53.yml | 2 +- .../data/licenses/metageek-inssider-eula.yml | 9 +++---- .../data/licenses/minpack.LICENSE | 2 ++ src/licensedcode/data/licenses/minpack.yml | 9 ++++--- src/licensedcode/data/licenses/mit-0.yml | 8 +++--- .../data/licenses/mit-no-trademarks.yml | 5 ++-- .../data/licenses/mod-dav-1.0.yml | 4 +-- src/licensedcode/data/licenses/mpl-1.0.yml | 2 +- src/licensedcode/data/licenses/mpl-1.1.yml | 2 +- .../data/licenses/ms-net-library-2016-05.yml | 9 +++---- .../data/licenses/ms-net-library-2018-11.yml | 7 +++-- .../data/licenses/ms-net-library-2019-06.yml | 6 ++--- .../data/licenses/ms-net-library-2020-09.yml | 8 +++--- .../data/licenses/ms-net-library.yml | 5 ++-- src/licensedcode/data/licenses/msntp.yml | 6 ++--- src/licensedcode/data/licenses/mtll.yml | 7 +++-- .../data/licenses/mulanpsl-1.0.yml | 2 +- .../data/licenses/mulanpsl-2.0.yml | 2 +- src/licensedcode/data/licenses/mx4j.yml | 4 +-- src/licensedcode/data/licenses/nasa-1.3.yml | 2 +- src/licensedcode/data/licenses/nero-eula.yml | 6 ++--- src/licensedcode/data/licenses/net-snmp.yml | 7 ++--- .../data/licenses/netapp-sdk-aug2020.yml | 3 +-- src/licensedcode/data/licenses/nicta-psl.yml | 4 ++- src/licensedcode/data/licenses/no-license.yml | 2 +- src/licensedcode/data/licenses/node-js.yml | 12 ++++----- src/licensedcode/data/licenses/nosl-3.0.yml | 2 +- src/licensedcode/data/licenses/notre-dame.yml | 4 +-- .../data/licenses/npsl-exception-0.93.yml | 25 +++++++++--------- src/licensedcode/data/licenses/nrl.yml | 4 +-- .../licenses/nvidia-apex-sdk-eula-2011.yml | 15 +++++------ .../licenses/nvidia-cuda-supplement-2020.yml | 26 +++++++++---------- .../licenses/nvidia-isaac-eula-2019.1.yml | 3 +-- .../data/licenses/nvidia-ngx-eula-2019.yml | 17 ++++++------ src/licensedcode/data/licenses/oclc-2.0.yml | 2 +- .../data/licenses/oculus-sdk-2020.yml | 13 +++++----- .../data/licenses/oculus-sdk-3.5.yml | 13 +++++----- src/licensedcode/data/licenses/ofl-1.1.yml | 3 +-- src/licensedcode/data/licenses/ogc-1.0.yml | 7 +++-- src/licensedcode/data/licenses/opengroup.yml | 2 +- .../data/licenses/openldap-1.1.yml | 2 +- .../data/licenses/openldap-1.2.yml | 2 +- .../data/licenses/openldap-1.3.yml | 2 +- .../data/licenses/openldap-1.4.yml | 2 +- .../data/licenses/openldap-2.0.1.yml | 2 +- .../data/licenses/openldap-2.0.yml | 2 +- .../data/licenses/openldap-2.1.yml | 2 +- .../data/licenses/openldap-2.2.1.yml | 2 +- .../data/licenses/openldap-2.2.2.yml | 2 +- .../data/licenses/openldap-2.2.yml | 2 +- .../data/licenses/openldap-2.3.yml | 2 +- .../data/licenses/openldap-2.4.yml | 2 +- .../data/licenses/openldap-2.5.yml | 2 +- .../data/licenses/openldap-2.6.yml | 2 +- .../data/licenses/openldap-2.7.yml | 2 +- .../data/licenses/openldap-2.8.yml | 2 +- .../data/licenses/openorb-1.0.yml | 4 +-- .../data/licenses/openpbs-2.3.yml | 4 +-- .../data/licenses/opensaml-1.0.yml | 4 +-- src/licensedcode/data/licenses/openssh.yml | 12 ++++----- .../data/licenses/openssl-ssleay.yml | 6 ++--- src/licensedcode/data/licenses/openssl.yml | 2 +- src/licensedcode/data/licenses/opnl-2.0.yml | 7 +++-- src/licensedcode/data/licenses/osl-1.0.yml | 2 +- src/licensedcode/data/licenses/osl-2.1.yml | 2 +- src/licensedcode/data/licenses/osl-3.0.yml | 2 +- src/licensedcode/data/licenses/owtchart.yml | 4 +-- src/licensedcode/data/licenses/ozplb-1.0.yml | 4 +-- src/licensedcode/data/licenses/ozplb-1.1.yml | 4 +-- .../data/licenses/paraview-1.2.yml | 6 ++--- .../data/licenses/paypal-sdk-2013-2016.yml | 5 ++-- src/licensedcode/data/licenses/pcre.yml | 4 +-- src/licensedcode/data/licenses/phorum-2.0.yml | 7 +++-- .../data/licenses/proprietary-license.yml | 7 +++-- src/licensedcode/data/licenses/psf-2.0.yml | 5 ++-- .../licenses/public-domain-disclaimer.yml | 7 +++-- .../data/licenses/public-domain.yml | 2 +- src/licensedcode/data/licenses/purdue-bsd.yml | 2 +- src/licensedcode/data/licenses/qhull.yml | 7 ++--- src/licensedcode/data/licenses/qpopper.yml | 4 +-- .../data/licenses/qualcomm-iso.yml | 4 +-- .../realm-platform-extension-2017.yml | 9 +++---- src/licensedcode/data/licenses/regexp.yml | 2 +- src/licensedcode/data/licenses/repoze.yml | 2 -- src/licensedcode/data/licenses/rpl-1.1.yml | 2 +- src/licensedcode/data/licenses/rpl-1.5.yml | 2 +- src/licensedcode/data/licenses/rpsl-1.0.yml | 2 +- .../data/licenses/scilab-en-2005.yml | 4 +-- .../data/licenses/sgi-cid-1.0.yml | 4 +-- .../data/licenses/sgi-glx-1.0.yml | 4 +-- src/licensedcode/data/licenses/shl-2.0.yml | 3 +-- src/licensedcode/data/licenses/shl-2.1.yml | 5 ++-- src/licensedcode/data/licenses/simpl-1.1.yml | 3 +-- src/licensedcode/data/licenses/smppl.yml | 3 +-- .../licenses/solace-software-eula-2020.yml | 15 +++++------ src/licensedcode/data/licenses/sparky.yml | 4 +-- src/licensedcode/data/licenses/spl-1.0.yml | 2 +- .../data/licenses/ssleay-windows.yml | 13 +++++----- src/licensedcode/data/licenses/ssleay.yml | 13 +++++----- .../data/licenses/sun-bsd-no-nuclear.yml | 2 +- .../data/licenses/sun-sissl-1.1.yml | 2 +- src/licensedcode/data/licenses/supervisor.yml | 4 +-- src/licensedcode/data/licenses/sybase.yml | 2 +- src/licensedcode/data/licenses/torque-1.1.yml | 4 +-- .../data/licenses/truecrypt-3.1.yml | 7 +++-- src/licensedcode/data/licenses/tumbolia.yml | 11 ++++---- src/licensedcode/data/licenses/ucl-1.0.yml | 4 +-- .../licenses/unknown-license-reference.yml | 6 ++--- .../data/licenses/unknown-spdx.yml | 2 +- src/licensedcode/data/licenses/unknown.yml | 4 +-- src/licensedcode/data/licenses/uofu-rfpl.yml | 4 +-- .../data/licenses/us-govt-public-domain.yml | 2 +- src/licensedcode/data/licenses/vhfpl-1.1.yml | 18 ++++++------- src/licensedcode/data/licenses/vsl-1.0.yml | 2 +- .../data/licenses/winzip-eula.yml | 4 +-- .../licenses/x11-xconsortium-veillard.yml | 2 +- .../data/licenses/xfree86-1.0.yml | 1 - src/licensedcode/data/licenses/xinetd.yml | 3 +-- src/licensedcode/data/licenses/xmldb-1.0.yml | 4 +-- .../data/licenses/zlib-acknowledgement.yml | 2 +- src/licensedcode/data/licenses/zlib.yml | 1 - src/licensedcode/data/licenses/zpl-1.0.yml | 4 +-- src/licensedcode/data/licenses/zpl-1.1.yml | 4 +-- src/licensedcode/data/licenses/zpl-2.0.yml | 2 +- src/licensedcode/data/licenses/zsh.yml | 11 ++++---- 237 files changed, 528 insertions(+), 586 deletions(-) diff --git a/src/licensedcode/data/licenses/389-exception.yml b/src/licensedcode/data/licenses/389-exception.yml index f7fddd9332b..ac4359c68da 100644 --- a/src/licensedcode/data/licenses/389-exception.yml +++ b/src/licensedcode/data/licenses/389-exception.yml @@ -11,6 +11,7 @@ text_urls: other_urls: - http://directory.fedoraproject.org/wiki/GPL_Exception_License_Text - http://www.gnu.org/licenses/gpl-2.0.txt + - https://web.archive.org/web/20080828121337/http://directory.fedoraproject.org/wiki/GPL_Exception_License_Text standard_notice: | This Program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free diff --git a/src/licensedcode/data/licenses/afl-3.0.yml b/src/licensedcode/data/licenses/afl-3.0.yml index 8a5be180721..cd05cc1404a 100644 --- a/src/licensedcode/data/licenses/afl-3.0.yml +++ b/src/licensedcode/data/licenses/afl-3.0.yml @@ -6,6 +6,7 @@ owner: Lawrence Rosen homepage_url: http://opensource.org/licenses/afl-3.0.php notes: Per SPDX.org, this license is OSI certified. spdx_license_key: AFL-3.0 +osi_license_key: AFL-3.0 text_urls: - http://www.opensource.org/licenses/afl-3.0.php - http://www.rosenlaw.com/AFL3.0.htm @@ -19,4 +20,3 @@ ignorable_copyrights: - Copyright (c) 2005 Lawrence Rosen ignorable_holders: - Lawrence Rosen -osi_license_key: AFL-3.0 diff --git a/src/licensedcode/data/licenses/agpl-1.0-plus.yml b/src/licensedcode/data/licenses/agpl-1.0-plus.yml index 156cf95c7c3..3d437461206 100644 --- a/src/licensedcode/data/licenses/agpl-1.0-plus.yml +++ b/src/licensedcode/data/licenses/agpl-1.0-plus.yml @@ -15,13 +15,12 @@ other_spdx_license_keys: text_urls: - http://www.affero.org/oagpl.html faq_url: http://www.affero.org/oagf.html +minimum_coverage: 80 ignorable_copyrights: - - Copyright (c) 2002 Affero Inc. - - copyright (c) 1989, 1991 Free Software Foundation, Inc. - - copyrighted by Affero, Inc. + - Copyright (c) 2002 Affero Inc. + - copyright (c) 1989, 1991 Free Software Foundation, Inc. + - copyrighted by Affero, Inc. ignorable_holders: - - Affero Inc. - - Affero, Inc. - - Free Software Foundation, Inc. -minimum_coverage: 80 - + - Affero Inc. + - Affero, Inc. + - Free Software Foundation, Inc. diff --git a/src/licensedcode/data/licenses/agpl-1.0.yml b/src/licensedcode/data/licenses/agpl-1.0.yml index 7f59a5746b4..6159360da4e 100644 --- a/src/licensedcode/data/licenses/agpl-1.0.yml +++ b/src/licensedcode/data/licenses/agpl-1.0.yml @@ -10,6 +10,7 @@ other_spdx_license_keys: text_urls: - http://www.affero.org/oagpl.html faq_url: http://www.affero.org/oagf.html +minimum_coverage: 75 ignorable_copyrights: - Copyright (c) 2002 Affero Inc. - copyright (c) 1989, 1991 Free Software Foundation, Inc. @@ -18,4 +19,3 @@ ignorable_holders: - Affero Inc. - Affero, Inc. - Free Software Foundation, Inc. -minimum_coverage: 75 diff --git a/src/licensedcode/data/licenses/agpl-3.0-plus.yml b/src/licensedcode/data/licenses/agpl-3.0-plus.yml index c7a74b4b0e7..de23447d0ec 100644 --- a/src/licensedcode/data/licenses/agpl-3.0-plus.yml +++ b/src/licensedcode/data/licenses/agpl-3.0-plus.yml @@ -23,10 +23,10 @@ other_urls: - https://www.gnu.org/licenses/agpl.txt minimum_coverage: 99 ignorable_copyrights: - - Copyright (c) 2007 Free Software Foundation, Inc. + - Copyright (c) 2007 Free Software Foundation, Inc. ignorable_holders: - - Free Software Foundation, Inc. + - Free Software Foundation, Inc. ignorable_urls: - - http://www.gnu.org/licenses/ - - https://fsf.org/ - - https://www.gnu.org/licenses/ + - http://www.gnu.org/licenses/ + - https://fsf.org/ + - https://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/licenses/agpl-3.0.yml b/src/licensedcode/data/licenses/agpl-3.0.yml index e1f97596f58..b51315e38a0 100644 --- a/src/licensedcode/data/licenses/agpl-3.0.yml +++ b/src/licensedcode/data/licenses/agpl-3.0.yml @@ -11,6 +11,7 @@ spdx_license_key: AGPL-3.0-only other_spdx_license_keys: - AGPL-3.0 - LicenseRef-AGPL-3.0 +osi_license_key: AGPL-3.0 text_urls: - http://www.fsf.org/licensing/licenses/agpl-3.0.html osi_url: http://www.opensource.org/licenses/agpl-v3.html @@ -28,4 +29,3 @@ ignorable_holders: ignorable_urls: - https://fsf.org/ - https://www.gnu.org/licenses/ -osi_license_key: AGPL-3.0 diff --git a/src/licensedcode/data/licenses/apache-1.1.yml b/src/licensedcode/data/licenses/apache-1.1.yml index 6b1d1908564..94220f078f8 100644 --- a/src/licensedcode/data/licenses/apache-1.1.yml +++ b/src/licensedcode/data/licenses/apache-1.1.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license is OSI certified. This license has been superseded by Apache 2.0 spdx_license_key: Apache-1.1 +osi_license_key: Apache-1.1 text_urls: - http://apache.org/licenses/LICENSE-1.1 faq_url: http://www.apache.org/foundation/license-faq.html @@ -16,12 +17,11 @@ other_urls: - https://opensource.org/licenses/Apache-1.1 ignorable_copyrights: - Copyright (c) 2000 The Apache Software Foundation -ignorable_authors: - - the Apache Software Foundation (http://www.apache.org/) ignorable_holders: - The Apache Software Foundation +ignorable_authors: + - the Apache Software Foundation (http://www.apache.org/) ignorable_urls: - http://www.apache.org/ ignorable_emails: - apache@apache.org -osi_license_key: Apache-1.1 diff --git a/src/licensedcode/data/licenses/apache-patent-exception.yml b/src/licensedcode/data/licenses/apache-patent-exception.yml index 5fbd2564e61..80cd4c4d424 100644 --- a/src/licensedcode/data/licenses/apache-patent-exception.yml +++ b/src/licensedcode/data/licenses/apache-patent-exception.yml @@ -7,4 +7,4 @@ homepage_url: https://github.com/michaelrsweet/mxml/blob/c44aa254ccd90b10b260f04 is_exception: yes spdx_license_key: LicenseRef-scancode-apache-patent-exception other_spdx_license_keys: - - LicenseRef-scancode-apache-patent-provision-exception \ No newline at end of file + - LicenseRef-scancode-apache-patent-provision-exception diff --git a/src/licensedcode/data/licenses/apsl-2.0.yml b/src/licensedcode/data/licenses/apsl-2.0.yml index 9c300a3b4a9..57b07922be2 100644 --- a/src/licensedcode/data/licenses/apsl-2.0.yml +++ b/src/licensedcode/data/licenses/apsl-2.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this version was released 6 August 2003. This license is OSI certifified. spdx_license_key: APSL-2.0 +osi_license_key: APSL-2.0 text_urls: - http://www.opensource.apple.com/license/apsl/ osi_url: http://opensource.org/licenses/apsl-2.0.php @@ -19,4 +20,3 @@ ignorable_holders: ignorable_urls: - http://www.apple.com/legal/guidelinesfor3rdparties.html - http://www.opensource.apple.com/apsl/ -osi_license_key: APSL-2.0 diff --git a/src/licensedcode/data/licenses/arphic-public.yml b/src/licensedcode/data/licenses/arphic-public.yml index 02e5ce21d26..ca793a33d5e 100644 --- a/src/licensedcode/data/licenses/arphic-public.yml +++ b/src/licensedcode/data/licenses/arphic-public.yml @@ -14,4 +14,3 @@ ignorable_copyrights: Taiwan ignorable_holders: - Arphic Technology Co., Ltd. 11Fl. No.168, Yung Chi Rd., Taipei, 110 Taiwan - \ No newline at end of file diff --git a/src/licensedcode/data/licenses/array-input-method-pl.yml b/src/licensedcode/data/licenses/array-input-method-pl.yml index 925cbb69fc2..3e31fbec893 100644 --- a/src/licensedcode/data/licenses/array-input-method-pl.yml +++ b/src/licensedcode/data/licenses/array-input-method-pl.yml @@ -4,12 +4,11 @@ name: Array Input Method Public License category: Permissive owner: Ming-Te Liao homepage_url: https://fedoraproject.org/wiki/Licensing/Array -faq_url: https://fedoraproject.org/wiki/Licensing/Array#License_Notes spdx_license_key: LicenseRef-scancode-array-input-method-pl -ignorable_authors: - - Array Input +faq_url: https://fedoraproject.org/wiki/Licensing/Array#License_Notes ignorable_copyrights: - - copyright holder of Array Input Method + - copyright holder of Array Input Method ignorable_holders: - - Array Input Method - + - Array Input Method +ignorable_authors: + - Array Input diff --git a/src/licensedcode/data/licenses/artistic-1.0.yml b/src/licensedcode/data/licenses/artistic-1.0.yml index 9248ea8f147..d613c723aab 100644 --- a/src/licensedcode/data/licenses/artistic-1.0.yml +++ b/src/licensedcode/data/licenses/artistic-1.0.yml @@ -6,6 +6,7 @@ owner: Perl Foundation homepage_url: http://www.perlfoundation.org/ notes: Per SPDX.org, this license was superseded by v2.0 spdx_license_key: Artistic-1.0 +osi_license_key: Artistic-1.0 text_urls: - http://opensource.org/licenses/artistic-license-1.0 osi_url: http://opensource.org/licenses/artistic-license-1.0 @@ -16,4 +17,3 @@ other_urls: - https://opensource.org/licenses/Artistic-1.0 ignorable_urls: - http://ftp.uu.net/ -osi_license_key: Artistic-1.0 diff --git a/src/licensedcode/data/licenses/artistic-2.0.yml b/src/licensedcode/data/licenses/artistic-2.0.yml index 4cfad15235f..ef76d6a484b 100644 --- a/src/licensedcode/data/licenses/artistic-2.0.yml +++ b/src/licensedcode/data/licenses/artistic-2.0.yml @@ -21,7 +21,7 @@ other_urls: - https://www.perlfoundation.org/artistic-license-20.html ignorable_copyrights: - Copyright (c) 2000-2006, The Perl Foundation -ignorable_authors: - - The Perl Foundation ignorable_holders: - The Perl Foundation +ignorable_authors: + - The Perl Foundation diff --git a/src/licensedcode/data/licenses/artistic-dist-1.0.yml b/src/licensedcode/data/licenses/artistic-dist-1.0.yml index bf1e8d9abda..c689d83ccce 100644 --- a/src/licensedcode/data/licenses/artistic-dist-1.0.yml +++ b/src/licensedcode/data/licenses/artistic-dist-1.0.yml @@ -4,10 +4,8 @@ name: Artistic License for dist 1.0 category: Copyleft Limited owner: Perl Foundation homepage_url: http://www.perlfoundation.org/ -notes: | - This is a variant Artistic license still used in today's Perl and that - comes with the "dist" tool included in the standard Perl distrbution. - See also https://github.com/pexip/os-perl/blob/d7a993d1118c65177c97ae41577b188653845a8a/regen-configure/U/README#L158 +notes: "This is a variant Artistic license still used in today's Perl and that \ncomes with\ + \ the \"dist\" tool included in the standard Perl distrbution.\nSee also https://github.com/pexip/os-perl/blob/d7a993d1118c65177c97ae41577b188653845a8a/regen-configure/U/README#L158\n" spdx_license_key: LicenseRef-scancode-artistic-1988-1.0 text_urls: - https://raw.githubusercontent.com/rmanfredi/dist/2cec35331a912b165e2dd135d22de81f34bbc83f/Artistic diff --git a/src/licensedcode/data/licenses/asn1.yml b/src/licensedcode/data/licenses/asn1.yml index ee2f50dbc95..fc7ead564b2 100644 --- a/src/licensedcode/data/licenses/asn1.yml +++ b/src/licensedcode/data/licenses/asn1.yml @@ -6,10 +6,10 @@ owner: ASN.1 Project spdx_license_key: LicenseRef-scancode-asn1 ignorable_copyrights: - copyright Peter Gutmann -ignorable_authors: - - David Kemp ignorable_holders: - Peter Gutmann +ignorable_authors: + - David Kemp ignorable_urls: - http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.c - http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cfg diff --git a/src/licensedcode/data/licenses/bacula-exception.yml b/src/licensedcode/data/licenses/bacula-exception.yml index 434bbecf53e..b47ff21753b 100644 --- a/src/licensedcode/data/licenses/bacula-exception.yml +++ b/src/licensedcode/data/licenses/bacula-exception.yml @@ -10,7 +10,6 @@ other_urls: - http://www.gnu.org/licenses/ minimum_coverage: 70 ignorable_copyrights: - - Copyright (c) 2000-2017 Kern Sibbald + - Copyright (c) 2000-2017 Kern Sibbald ignorable_holders: - - Kern Sibbald - + - Kern Sibbald diff --git a/src/licensedcode/data/licenses/baekmuk-fonts.yml b/src/licensedcode/data/licenses/baekmuk-fonts.yml index abd5c5db6cb..0bba7b88d8c 100644 --- a/src/licensedcode/data/licenses/baekmuk-fonts.yml +++ b/src/licensedcode/data/licenses/baekmuk-fonts.yml @@ -4,11 +4,10 @@ name: Baekmuk Fonts License category: Permissive owner: Unspecified spdx_license_key: Baekmuk -other_urls: - - https://fedoraproject.org/wiki/Licensing:Baekmuk?rd=Licensing/Baekmuk - other_spdx_license_keys: - LicenseRef-scancode-baekmuk-fonts +other_urls: + - https://fedoraproject.org/wiki/Licensing:Baekmuk?rd=Licensing/Baekmuk ignorable_copyrights: - Copyright (c) Kim Jeong-Hwan ignorable_holders: diff --git a/src/licensedcode/data/licenses/bigdigits.yml b/src/licensedcode/data/licenses/bigdigits.yml index fc3bc754926..98a9be3a33a 100644 --- a/src/licensedcode/data/licenses/bigdigits.yml +++ b/src/licensedcode/data/licenses/bigdigits.yml @@ -18,10 +18,10 @@ text_urls: ignorable_copyrights: - copyright (c) 2001-11 D.I. Management Services Pty Limited - copyright (c) 2001-11 by D.I. Management Services Pty Limited -ignorable_authors: - - David Ireland ignorable_holders: - D.I. Management Services Pty Limited +ignorable_authors: + - David Ireland ignorable_urls: - http://www.di-mgt.com.au/ - http://www.di-mgt.com.au/bigdigits.html diff --git a/src/licensedcode/data/licenses/bitstream.yml b/src/licensedcode/data/licenses/bitstream.yml index f1017515757..ba1651aa417 100644 --- a/src/licensedcode/data/licenses/bitstream.yml +++ b/src/licensedcode/data/licenses/bitstream.yml @@ -9,5 +9,7 @@ other_spdx_license_keys: - LicenseRef-scancode-bitstream text_urls: - http://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts +other_urls: + - https://docubrain.com/sites/default/files/licenses/bitstream-vera.html + - https://web.archive.org/web/20080207013128/http://www.gnome.org/fonts/ minimum_coverage: 50 - diff --git a/src/licensedcode/data/licenses/bitwarden-1.0.yml b/src/licensedcode/data/licenses/bitwarden-1.0.yml index b8798af88a9..c31533c15b7 100644 --- a/src/licensedcode/data/licenses/bitwarden-1.0.yml +++ b/src/licensedcode/data/licenses/bitwarden-1.0.yml @@ -4,5 +4,5 @@ name: Bitwarden License Agreement v1 category: Source-available owner: Bitwarden homepage_url: https://github.com/bitwarden/server/blob/v1.38.1/LICENSE_BITWARDEN.txt -faq_url: https://github.com/bitwarden/server/blob/v1.38.1/LICENSE_FAQ.md spdx_license_key: LicenseRef-scancode-bitwarden-1.0 +faq_url: https://github.com/bitwarden/server/blob/v1.38.1/LICENSE_FAQ.md diff --git a/src/licensedcode/data/licenses/bsd-3-clause-fda.yml b/src/licensedcode/data/licenses/bsd-3-clause-fda.yml index 93f6a268bf2..beaf6b8aae3 100644 --- a/src/licensedcode/data/licenses/bsd-3-clause-fda.yml +++ b/src/licensedcode/data/licenses/bsd-3-clause-fda.yml @@ -2,7 +2,7 @@ key: bsd-3-clause-fda short_name: BSD 3-Clause FDA name: BSD 3-Clause FDA category: Permissive -owner: U.S. Food and Drug Administration +owner: U.S. Food and Drug Administration notes: This is based on the bsd-3-clause and a different disclaimer spdx_license_key: LicenseRef-scancode-bsd-3-clause-fda minimum_coverage: 90 diff --git a/src/licensedcode/data/licenses/bsd-4-clause-shortened.yml b/src/licensedcode/data/licenses/bsd-4-clause-shortened.yml index a11a1629d85..244a093c619 100644 --- a/src/licensedcode/data/licenses/bsd-4-clause-shortened.yml +++ b/src/licensedcode/data/licenses/bsd-4-clause-shortened.yml @@ -7,5 +7,4 @@ spdx_license_key: BSD-4-Clause-Shortened other_urls: - https://metadata.ftp-master.debian.org/changelogs//main/a/arpwatch/arpwatch_2.1a15-7_copyright ignorable_authors: - - the University of California, Lawrence Berkeley Laboratory and its contributors - + - the University of California, Lawrence Berkeley Laboratory and its contributors diff --git a/src/licensedcode/data/licenses/bsd-new.yml b/src/licensedcode/data/licenses/bsd-new.yml index 24c37f8e6ca..2170c351120 100644 --- a/src/licensedcode/data/licenses/bsd-new.yml +++ b/src/licensedcode/data/licenses/bsd-new.yml @@ -8,10 +8,10 @@ notes: Per SPDX.org, this license is OSI certified. spdx_license_key: BSD-3-Clause other_spdx_license_keys: - LicenseRef-scancode-libzip +osi_license_key: BSD-3-Clause text_urls: - http://www.opensource.org/licenses/BSD-3-Clause osi_url: http://www.opensource.org/licenses/BSD-3-Clause other_urls: - http://framework.zend.com/license/new-bsd - https://opensource.org/licenses/BSD-3-Clause -osi_license_key: BSD-3-Clause diff --git a/src/licensedcode/data/licenses/bsd-original-uc.yml b/src/licensedcode/data/licenses/bsd-original-uc.yml index 08d470c0f71..03b4dd4a8dd 100644 --- a/src/licensedcode/data/licenses/bsd-original-uc.yml +++ b/src/licensedcode/data/licenses/bsd-original-uc.yml @@ -21,10 +21,10 @@ other_urls: - http://www.gnu.org/philosophy/bsd.html ignorable_copyrights: - copyrighted by the Regents of the University of California +ignorable_holders: + - the Regents of the University of California ignorable_authors: - UC Berkeley and its contributors - the University of California, Berkeley and its contributors -ignorable_holders: - - the Regents of the University of California ignorable_urls: - ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change diff --git a/src/licensedcode/data/licenses/bsd-original-voices.yml b/src/licensedcode/data/licenses/bsd-original-voices.yml index 0eb15a76891..4597f5c8856 100644 --- a/src/licensedcode/data/licenses/bsd-original-voices.yml +++ b/src/licensedcode/data/licenses/bsd-original-voices.yml @@ -5,6 +5,6 @@ category: Permissive owner: Bill Paul homepage_url: https://github.com/freebsd/freebsd-src/blob/098dbd7ff7f3da9dda03802cdb2d8755f816eada/sys/dev/an/if_an_isa.c spdx_license_key: LicenseRef-scancode-bsd-original-voices -ignorable_authors: - - Bill Paul minimum_coverage: 99 +ignorable_authors: + - Bill Paul diff --git a/src/licensedcode/data/licenses/bsd-top.yml b/src/licensedcode/data/licenses/bsd-top.yml index a8ae168e34b..a373d5714d5 100644 --- a/src/licensedcode/data/licenses/bsd-top.yml +++ b/src/licensedcode/data/licenses/bsd-top.yml @@ -7,4 +7,4 @@ notes: | This is a variant composed of clause 1 and 3 of a BSD-Modified and some additional conditions on position and content of the notice spdx_license_key: LicenseRef-scancode-bsd-top -minimum_coverage: 70 \ No newline at end of file +minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/bzip2-libbzip-2010.yml b/src/licensedcode/data/licenses/bzip2-libbzip-2010.yml index 9e1a096f7a2..7eeaf376f4d 100644 --- a/src/licensedcode/data/licenses/bzip2-libbzip-2010.yml +++ b/src/licensedcode/data/licenses/bzip2-libbzip-2010.yml @@ -4,8 +4,8 @@ name: bzip2 License 2010 category: Permissive owner: bzip homepage_url: https://github.com/asimonov-im/bzip2/blob/master/LICENSE -notes: until bzip2 1.0.6 there is only one license and not two as listed in SPDX. - Therefore we only track one such license. +notes: until bzip2 1.0.6 there is only one license and not two as listed in SPDX. Therefore + we only track one such license. spdx_license_key: bzip2-1.0.6 other_spdx_license_keys: - bzip2-1.0.5 diff --git a/src/licensedcode/data/licenses/ca-tosl-1.1.yml b/src/licensedcode/data/licenses/ca-tosl-1.1.yml index 6dc3708ef8d..7d205c7a3a0 100644 --- a/src/licensedcode/data/licenses/ca-tosl-1.1.yml +++ b/src/licensedcode/data/licenses/ca-tosl-1.1.yml @@ -6,6 +6,7 @@ owner: Computer Associates homepage_url: http://www.opensource.org/licenses/ca-tosl1.1.php notes: Per SPDX.org, this license is OSI certifified. spdx_license_key: CATOSL-1.1 +osi_license_key: CATOSL-1.1 text_urls: - http://www.opensource.org/licenses/ca-tosl1.1.php osi_url: http://opensource.org/licenses/ca-tosl1.1.php @@ -16,4 +17,3 @@ ignorable_urls: - http://www.ca.com/catrdmrk.htm ignorable_emails: - opensource@ca.com -osi_license_key: CATOSL-1.1 diff --git a/src/licensedcode/data/licenses/cc-by-nc-nd-3.0-igo.yml b/src/licensedcode/data/licenses/cc-by-nc-nd-3.0-igo.yml index b9a23e06b67..5cbe29fa045 100644 --- a/src/licensedcode/data/licenses/cc-by-nc-nd-3.0-igo.yml +++ b/src/licensedcode/data/licenses/cc-by-nc-nd-3.0-igo.yml @@ -8,5 +8,4 @@ spdx_license_key: CC-BY-NC-ND-3.0-IGO text_urls: - https://creativecommons.org/licenses/by-nc-nd/3.0/igo/legalcode ignorable_urls: - - https://creativecommons.org/ - + - https://creativecommons.org/ diff --git a/src/licensedcode/data/licenses/cc-by-sa-2.0-uk.yml b/src/licensedcode/data/licenses/cc-by-sa-2.0-uk.yml index 55c62c31f68..4c0782c6364 100644 --- a/src/licensedcode/data/licenses/cc-by-sa-2.0-uk.yml +++ b/src/licensedcode/data/licenses/cc-by-sa-2.0-uk.yml @@ -1,13 +1,12 @@ key: cc-by-sa-2.0-uk short_name: CC-BY-SA-2.0-UK name: Creative Commons Attribution Share Alike 2.0 England and Wales -spdx_license_key: CC-BY-SA-2.0-UK category: Copyleft Limited owner: Creative Commons homepage_url: http://creativecommons.org/licenses/by-sa/2.0//uk +spdx_license_key: CC-BY-SA-2.0-UK other_urls: - https://creativecommons.org/licenses/by-sa/2.0/uk/legalcode minimum_coverage: 70 ignorable_urls: - - https://creativecommons.org/ - + - https://creativecommons.org/ diff --git a/src/licensedcode/data/licenses/cddl-1.0.yml b/src/licensedcode/data/licenses/cddl-1.0.yml index f2c696edba3..607794aa521 100644 --- a/src/licensedcode/data/licenses/cddl-1.0.yml +++ b/src/licensedcode/data/licenses/cddl-1.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was released 24 January 2004. This license is OSI certified. spdx_license_key: CDDL-1.0 +osi_license_key: CDDL-1.0 text_urls: - http://www.opensolaris.org/os/licensing/cddllicense.txt - http://www.sun.com/cddl/cddl.html @@ -19,4 +20,3 @@ other_urls: - http://www.oracle.com/us/sun/index.html - https://glassfish.dev.java.net/public/CDDLv1.0.html - https://opensource.org/licenses/cddl1 -osi_license_key: CDDL-1.0 diff --git a/src/licensedcode/data/licenses/cecill-2.0-fr.yml b/src/licensedcode/data/licenses/cecill-2.0-fr.yml index 3ce23af8ff9..0ccd46e8f06 100644 --- a/src/licensedcode/data/licenses/cecill-2.0-fr.yml +++ b/src/licensedcode/data/licenses/cecill-2.0-fr.yml @@ -1,7 +1,7 @@ key: cecill-2.0-fr +language: fr short_name: CeCILL 2.0 French name: CeCILL Free Software License Agreement v2.0 French -language: fr category: Copyleft Limited owner: CeCILL homepage_url: http://www.cecill.info/licences.en.html diff --git a/src/licensedcode/data/licenses/cecill-2.1-fr.yml b/src/licensedcode/data/licenses/cecill-2.1-fr.yml index 2c2d57f076d..14cf08fb64c 100644 --- a/src/licensedcode/data/licenses/cecill-2.1-fr.yml +++ b/src/licensedcode/data/licenses/cecill-2.1-fr.yml @@ -1,8 +1,8 @@ key: cecill-2.1-fr +language: fr short_name: CeCILL 2.1 French name: CeCILL Free Software License Agreement v2.1 French category: Copyleft Limited -language: fr owner: CeCILL homepage_url: http://www.cecill.info/licences/Licence_CeCILL_V2.1-fr.html spdx_license_key: LicenseRef-scancode-cecill-2.1-fr diff --git a/src/licensedcode/data/licenses/chartdirector-6.0.yml b/src/licensedcode/data/licenses/chartdirector-6.0.yml index 382b8bda788..9269b7c36a9 100644 --- a/src/licensedcode/data/licenses/chartdirector-6.0.yml +++ b/src/licensedcode/data/licenses/chartdirector-6.0.yml @@ -9,9 +9,9 @@ other_urls: - http://www.advsofteng.com/ ignorable_copyrights: - (c) 2015 Advanced Software Engineering Limited -ignorable_authors: - - using code from the Independent JPEG Group and the FreeType team ignorable_holders: - Advanced Software Engineering Limited +ignorable_authors: + - using code from the Independent JPEG Group and the FreeType team ignorable_urls: - http://www.advsofteng.com/ diff --git a/src/licensedcode/data/licenses/cncf-corporate-cla-1.0.yml b/src/licensedcode/data/licenses/cncf-corporate-cla-1.0.yml index 3c61f4cb27c..ec9efab4b53 100644 --- a/src/licensedcode/data/licenses/cncf-corporate-cla-1.0.yml +++ b/src/licensedcode/data/licenses/cncf-corporate-cla-1.0.yml @@ -7,5 +7,4 @@ homepage_url: https://github.com/cncf/cla/blob/master/corporate-cla.pdf spdx_license_key: LicenseRef-scancode-cncf-corporate-cla-1.0 faq_url: https://github.com/kubernetes/community/blob/master/CLA.md ignorable_emails: - - cla@cncf.io - + - cla@cncf.io diff --git a/src/licensedcode/data/licenses/cncf-individual-cla-1.0.yml b/src/licensedcode/data/licenses/cncf-individual-cla-1.0.yml index 38052dca4a6..476ef5b3d46 100644 --- a/src/licensedcode/data/licenses/cncf-individual-cla-1.0.yml +++ b/src/licensedcode/data/licenses/cncf-individual-cla-1.0.yml @@ -7,5 +7,4 @@ homepage_url: https://github.com/cncf/cla/blob/master/individual-cla.pdf spdx_license_key: LicenseRef-scancode-cncf-individual-cla-1.0 faq_url: https://github.com/kubernetes/community/blob/master/CLA.md ignorable_emails: - - cla@cncf.io - + - cla@cncf.io diff --git a/src/licensedcode/data/licenses/cnri-python-1.6.yml b/src/licensedcode/data/licenses/cnri-python-1.6.yml index 2eb78ebe2db..08a15fe0dfe 100644 --- a/src/licensedcode/data/licenses/cnri-python-1.6.yml +++ b/src/licensedcode/data/licenses/cnri-python-1.6.yml @@ -6,6 +6,7 @@ owner: CNRI homepage_url: http://www.handle.net/python_licenses/python1.6_9-5-00.html notes: per SPDX.org, CNRI portion of the multi-part Python License (Python-2.0) spdx_license_key: CNRI-Python +osi_license_key: CNRI-Python text_urls: - http://www.handle.net/python_licenses/python1.6_9-5-00.html other_urls: @@ -19,4 +20,3 @@ ignorable_holders: ignorable_urls: - http://hdl.handle.net/1895.22/1012 - http://www.python.org/ -osi_license_key: CNRI-Python diff --git a/src/licensedcode/data/licenses/code-credit-license-1.0.1.yml b/src/licensedcode/data/licenses/code-credit-license-1.0.1.yml index 925e8d8c3fe..c0e20fe50dd 100644 --- a/src/licensedcode/data/licenses/code-credit-license-1.0.1.yml +++ b/src/licensedcode/data/licenses/code-credit-license-1.0.1.yml @@ -10,6 +10,5 @@ other_urls: - https://github.com/DoctorLaplace/Storm-Mind-Public/blob/main/LICENSE - https://github.com/pedrohdjs/javascript-basico-para-programadores/blob/main/LICENSE ignorable_urls: - - https://codecreditlicense.com/license/1.0.1 - - https://creditstxt.com/ - + - https://codecreditlicense.com/license/1.0.1 + - https://creditstxt.com/ diff --git a/src/licensedcode/data/licenses/colt.yml b/src/licensedcode/data/licenses/colt.yml index 200e948f955..9069d2c7e0e 100644 --- a/src/licensedcode/data/licenses/colt.yml +++ b/src/licensedcode/data/licenses/colt.yml @@ -10,10 +10,10 @@ text_urls: minimum_coverage: 85 ignorable_copyrights: - Copyright (c) 1999 CERN - European Organization for Nuclear Research +ignorable_holders: + - CERN - European Organization for Nuclear Research ignorable_authors: - Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony Johnson, Andreas Pfeiffer, and others. Check the FreeHEP -ignorable_holders: - - CERN - European Organization for Nuclear Research ignorable_urls: - http://acs.lbl.gov/software/colt/license.html diff --git a/src/licensedcode/data/licenses/commercial-license.yml b/src/licensedcode/data/licenses/commercial-license.yml index e1e89da36ee..a09b128205c 100644 --- a/src/licensedcode/data/licenses/commercial-license.yml +++ b/src/licensedcode/data/licenses/commercial-license.yml @@ -3,6 +3,6 @@ short_name: Commercial License name: Commercial License category: Commercial owner: Unspecified -is_generic: yes notes: this is a generic commercial license +is_generic: yes spdx_license_key: LicenseRef-scancode-commercial-license diff --git a/src/licensedcode/data/licenses/condor-1.1.yml b/src/licensedcode/data/licenses/condor-1.1.yml index 54fbbe559bb..2129988be32 100644 --- a/src/licensedcode/data/licenses/condor-1.1.yml +++ b/src/licensedcode/data/licenses/condor-1.1.yml @@ -14,10 +14,10 @@ other_urls: ignorable_copyrights: - Copyright 1990-2006 Condor Team, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI. -ignorable_authors: - - the Condor Project, Condor Team, Computer Sciences Department, University of Wisconsin-Madison ignorable_holders: - Condor Team, Computer Sciences Department, University of Wisconsin-Madison, Madison, WI. +ignorable_authors: + - the Condor Project, Condor Team, Computer Sciences Department, University of Wisconsin-Madison ignorable_urls: - http://www.condorproject.org/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/cosli.yml b/src/licensedcode/data/licenses/cosli.yml index 2ca27f65d66..3611fdd5722 100644 --- a/src/licensedcode/data/licenses/cosli.yml +++ b/src/licensedcode/data/licenses/cosli.yml @@ -8,12 +8,12 @@ spdx_license_key: LicenseRef-scancode-cosli ignorable_copyrights: - Copyright (c) 2017-2019 The Fieldtracks Project - Copyright (c) The OpenSSL Project -ignorable_authors: - - the Fieldtracks Project (https://fieldtracks.org/) - - the fieldtracks Project (https://www.fieldtracks.org/) ignorable_holders: - The Fieldtracks Project - The OpenSSL Project +ignorable_authors: + - the Fieldtracks Project (https://fieldtracks.org/) + - the fieldtracks Project (https://www.fieldtracks.org/) ignorable_urls: - https://fieldtracks.org/ - https://www.fieldtracks.org/ diff --git a/src/licensedcode/data/licenses/cpal-1.0.yml b/src/licensedcode/data/licenses/cpal-1.0.yml index 2a4fd8ce3ae..947430222d7 100644 --- a/src/licensedcode/data/licenses/cpal-1.0.yml +++ b/src/licensedcode/data/licenses/cpal-1.0.yml @@ -6,10 +6,10 @@ owner: OSI - Open Source Initiative homepage_url: http://www.opensource.org/licenses/cpal_1.0 notes: Per SPDX.org, this license is OSI certifified. spdx_license_key: CPAL-1.0 +osi_license_key: CPAL-1.0 text_urls: - http://opensource.org/licenses/cpal_1.0 osi_url: http://opensource.org/licenses/cpal_1.0 other_urls: - http://www.opensource.org/licenses/CPAL-1.0 - https://opensource.org/licenses/CPAL-1.0 -osi_license_key: CPAL-1.0 diff --git a/src/licensedcode/data/licenses/cpl-1.0.yml b/src/licensedcode/data/licenses/cpl-1.0.yml index 6aadc6c8783..02b19c51bfb 100644 --- a/src/licensedcode/data/licenses/cpl-1.0.yml +++ b/src/licensedcode/data/licenses/cpl-1.0.yml @@ -6,6 +6,7 @@ owner: IBM homepage_url: http://www.eclipse.org/legal/cpl-v10.html notes: Per SPDX.org, this license was superseded by Eclipse Public License spdx_license_key: CPL-1.0 +osi_license_key: CPL-1.0 text_urls: - http://www.eclipse.org/legal/cpl-v10.html osi_url: http://www.opensource.org/licenses/cpl1.0.php @@ -17,4 +18,3 @@ other_urls: - http://www.ibm.com/developerworks/library/os-cplfaq.html - http://www.padsproj.org/License.html - https://opensource.org/licenses/CPL-1.0 -osi_license_key: CPL-1.0 diff --git a/src/licensedcode/data/licenses/csl-1.0.yml b/src/licensedcode/data/licenses/csl-1.0.yml index 525fceb4cb5..2f98228da48 100644 --- a/src/licensedcode/data/licenses/csl-1.0.yml +++ b/src/licensedcode/data/licenses/csl-1.0.yml @@ -14,10 +14,10 @@ other_urls: ignorable_copyrights: - Copyright 2020 Joint Development Foundation - Copyright Attribution. As -ignorable_authors: - - the Working Group ignorable_holders: - Attribution. As - Joint Development Foundation +ignorable_authors: + - the Working Group ignorable_urls: - https://creativecommons.org/licenses/by/4.0 diff --git a/src/licensedcode/data/licenses/cua-opl-1.0.yml b/src/licensedcode/data/licenses/cua-opl-1.0.yml index edf72442d01..2a0281910b3 100644 --- a/src/licensedcode/data/licenses/cua-opl-1.0.yml +++ b/src/licensedcode/data/licenses/cua-opl-1.0.yml @@ -6,6 +6,7 @@ owner: OSI - Open Source Initiative homepage_url: http://www.opensource.org/licenses/cuaoffice.php notes: Per SPDX.org, this license is OSI certifified. spdx_license_key: CUA-OPL-1.0 +osi_license_key: CUA-OPL-1.0 text_urls: - http://opensource.org/licenses/cuaoffice.php osi_url: http://opensource.org/licenses/cuaoffice.php @@ -14,4 +15,3 @@ other_urls: - https://opensource.org/licenses/CUA-OPL-1.0 ignorable_urls: - http://cuaoffice.sourceforge.net/ -osi_license_key: CUA-OPL-1.0 diff --git a/src/licensedcode/data/licenses/cups.yml b/src/licensedcode/data/licenses/cups.yml index 4d7c1b1c4fe..d63a33d34ea 100644 --- a/src/licensedcode/data/licenses/cups.yml +++ b/src/licensedcode/data/licenses/cups.yml @@ -10,11 +10,11 @@ text_urls: ignorable_copyrights: - Copyright 2007-2009 by Apple Inc. - copyright 2006 by Jelmer Vernooij -ignorable_authors: - - Apple Inc. - - permission from Apple Inc. ignorable_holders: - Apple Inc. - Jelmer Vernooij +ignorable_authors: + - Apple Inc. + - permission from Apple Inc. ignorable_urls: - http://www.cups.org/ diff --git a/src/licensedcode/data/licenses/d-fsl-1.0-en.yml b/src/licensedcode/data/licenses/d-fsl-1.0-en.yml index 9454aeed9bb..55cb42b2145 100644 --- a/src/licensedcode/data/licenses/d-fsl-1.0-en.yml +++ b/src/licensedcode/data/licenses/d-fsl-1.0-en.yml @@ -14,11 +14,11 @@ other_urls: minimum_coverage: 10 ignorable_copyrights: - (c) Ministry of Science and Research, State of North-Rhine Westphalia 2004 +ignorable_holders: + - Ministry of Science and Research, State of North-Rhine Westphalia ignorable_authors: - Axel Metzger and Till Jaeger, Institut fur Rechtsfragen der Freien und Open Source Software Institute for Legal Issues -ignorable_holders: - - Ministry of Science and Research, State of North-Rhine Westphalia ignorable_urls: - http://www.d-fsl.org/ - http://www.fsf.org/licenses/gpl diff --git a/src/licensedcode/data/licenses/digirule-foss-exception.yml b/src/licensedcode/data/licenses/digirule-foss-exception.yml index 53120e2a89f..53a09738bd2 100644 --- a/src/licensedcode/data/licenses/digirule-foss-exception.yml +++ b/src/licensedcode/data/licenses/digirule-foss-exception.yml @@ -5,12 +5,12 @@ category: Copyleft Limited owner: bradsprojects homepage_url: https://bradsprojects.com/the-digirule/ is_exception: yes -minimum_coverage: 90 spdx_license_key: DigiRule-FOSS-exception other_urls: - http://www.digirulesolutions.com/drupal/foss - http://www.gnu.org/licenses/gpl-2.0.txt - https://www.bradsprojects.com/wp-content/uploads/2015/10/Digirule_Files_04_July_2017.zip +minimum_coverage: 90 standard_notice: | DigiRule Solutions's FOSS License Exception Terms and Conditions 1. Definitions. diff --git a/src/licensedcode/data/licenses/divx-open-1.0.yml b/src/licensedcode/data/licenses/divx-open-1.0.yml index b9e83a2168c..21f98148659 100644 --- a/src/licensedcode/data/licenses/divx-open-1.0.yml +++ b/src/licensedcode/data/licenses/divx-open-1.0.yml @@ -7,7 +7,7 @@ spdx_license_key: LicenseRef-scancode-divx-open-1.0 minimum_coverage: 30 ignorable_copyrights: - Copyright (c) 2001 Project Mayo -ignorable_authors: - - Project Mayo ignorable_holders: - Project Mayo +ignorable_authors: + - Project Mayo diff --git a/src/licensedcode/data/licenses/divx-open-2.1.yml b/src/licensedcode/data/licenses/divx-open-2.1.yml index 53042ba5fb3..4323d27a24f 100644 --- a/src/licensedcode/data/licenses/divx-open-2.1.yml +++ b/src/licensedcode/data/licenses/divx-open-2.1.yml @@ -6,7 +6,7 @@ owner: DivX, LLC spdx_license_key: LicenseRef-scancode-divx-open-2.1 ignorable_copyrights: - Copyright (c) 2001 Project Mayo -ignorable_authors: - - Project Mayo ignorable_holders: - Project Mayo +ignorable_authors: + - Project Mayo diff --git a/src/licensedcode/data/licenses/dl-de-by-1-0-en.yml b/src/licensedcode/data/licenses/dl-de-by-1-0-en.yml index 213716df988..0a3ebd9218d 100644 --- a/src/licensedcode/data/licenses/dl-de-by-1-0-en.yml +++ b/src/licensedcode/data/licenses/dl-de-by-1-0-en.yml @@ -4,6 +4,6 @@ name: Data licence Germany - attribution - Version 1 - English category: Permissive owner: govdata.de homepage_url: https://www.govdata.de/dl-de/by-1-0 +spdx_license_key: LicenseRef-scancode-dl-de-by-1-0-en other_urls: - https://www.dcat-ap.de/def/licenses/ -spdx_license_key: LicenseRef-scancode-dl-de-by-1-0-en \ No newline at end of file diff --git a/src/licensedcode/data/licenses/dl-de-by-2-0-en.yml b/src/licensedcode/data/licenses/dl-de-by-2-0-en.yml index 5d92d8cad73..8f68a726484 100644 --- a/src/licensedcode/data/licenses/dl-de-by-2-0-en.yml +++ b/src/licensedcode/data/licenses/dl-de-by-2-0-en.yml @@ -4,8 +4,8 @@ name: Data licence Germany - attribution - Version 2 - English category: Permissive owner: govdata.de homepage_url: http://www.govdata.de/dl-de/by-2-0 +spdx_license_key: LicenseRef-scancode-dl-de-by-2-0-en other_urls: - https://www.dcat-ap.de/def/licenses/ -spdx_license_key: LicenseRef-scancode-dl-de-by-2-0-en ignorable_urls: - - http://www.govdata.de/dl-de/by-2-0 + - http://www.govdata.de/dl-de/by-2-0 diff --git a/src/licensedcode/data/licenses/dl-de-by-nc-1-0-en.yml b/src/licensedcode/data/licenses/dl-de-by-nc-1-0-en.yml index e6fb6ede310..14e14ca4f7a 100644 --- a/src/licensedcode/data/licenses/dl-de-by-nc-1-0-en.yml +++ b/src/licensedcode/data/licenses/dl-de-by-nc-1-0-en.yml @@ -4,6 +4,6 @@ name: Data licence Germany - attribution - non-commercial - Version 1.0 - Englis category: Free Restricted owner: govdata.de homepage_url: https://www.govdata.de/dl-de/by-nc-1-0 +spdx_license_key: LicenseRef-scancode-dl-de-by-nc-1-0-en other_urls: - https://www.dcat-ap.de/def/licenses/ -spdx_license_key: LicenseRef-scancode-dl-de-by-nc-1-0-en diff --git a/src/licensedcode/data/licenses/dropbear-2016.yml b/src/licensedcode/data/licenses/dropbear-2016.yml index 7d53d1f1245..87b51c8bb27 100644 --- a/src/licensedcode/data/licenses/dropbear-2016.yml +++ b/src/licensedcode/data/licenses/dropbear-2016.yml @@ -17,10 +17,6 @@ ignorable_copyrights: - Portions copyright Robert de Bath, Joris van Rantwijk, Delian Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, Justin Bradford, and CORE SDI S.A. - copyright 1997-2003 Simon Tatham -ignorable_authors: - - Daniel J. Bernstein - - Matt Johnston - - Tom St Denis ignorable_holders: - Google Inc. - Matt Johnston @@ -30,6 +26,10 @@ ignorable_holders: - Simon Tatham - Tatu Ylonen , Espoo, Finland - Todd C. Miller +ignorable_authors: + - Daniel J. Bernstein + - Matt Johnston + - Tom St Denis ignorable_urls: - http://code.google.com/p/curve25519-donna/ - http://cr.yp.to/ecdh.html diff --git a/src/licensedcode/data/licenses/dropbear.yml b/src/licensedcode/data/licenses/dropbear.yml index 4e851eea8fc..03eb185bc1b 100644 --- a/src/licensedcode/data/licenses/dropbear.yml +++ b/src/licensedcode/data/licenses/dropbear.yml @@ -22,11 +22,6 @@ ignorable_copyrights: - Portions copyright Robert de Bath, Joris van Rantwijk, Delian Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, Justin Bradford, and CORE SDI S.A. - copyright 1997-2003 Simon Tatham -ignorable_authors: - - Andre Lucas - - Matt Johnston - - Theo de Raadt - - Tom St Denis ignorable_holders: - Andre Lucas - Jason Downs @@ -38,6 +33,11 @@ ignorable_holders: - Tatu Ylonen , Timo Rinne ,Espoo, Finland - Theo de Raadt - Todd C. Miller +ignorable_authors: + - Andre Lucas + - Matt Johnston + - Theo de Raadt + - Tom St Denis ignorable_emails: - tri@iki.fi - ylo@cs.hut.fi diff --git a/src/licensedcode/data/licenses/ecl-1.0.yml b/src/licensedcode/data/licenses/ecl-1.0.yml index 060606dc846..19aa50a8ac7 100644 --- a/src/licensedcode/data/licenses/ecl-1.0.yml +++ b/src/licensedcode/data/licenses/ecl-1.0.yml @@ -6,10 +6,10 @@ owner: OSI - Open Source Initiative homepage_url: http://www.opensource.org/licenses/ecl1.php notes: Per SPDX.org, this license is OSI certified. spdx_license_key: ECL-1.0 +osi_license_key: ECL-1.0 text_urls: - http://www.opensource.org/licenses/ecl1.php osi_url: http://opensource.org/licenses/ecl1.php other_urls: - http://opensource.org/licenses/ECL-1.0 - https://opensource.org/licenses/ECL-1.0 -osi_license_key: ECL-1.0 diff --git a/src/licensedcode/data/licenses/ecl-2.0.yml b/src/licensedcode/data/licenses/ecl-2.0.yml index 463e7fd88c0..8c5f7559e73 100644 --- a/src/licensedcode/data/licenses/ecl-2.0.yml +++ b/src/licensedcode/data/licenses/ecl-2.0.yml @@ -11,6 +11,7 @@ notes: | needs of the education communities using this license. The url included in the boilerplate notice does not work. (15/10/10) spdx_license_key: ECL-2.0 +osi_license_key: ECL-2.0 text_urls: - http://www.opensource.org/licenses/ecl2.php osi_url: http://opensource.org/licenses/ecl2.php @@ -21,4 +22,3 @@ ignorable_urls: - http://www.apache.org/licenses/LICENSE-2.0 - http://www.osedu.org/licenses/ - http://www.osedu.org/licenses/ECL-2.0 -osi_license_key: ECL-2.0 diff --git a/src/licensedcode/data/licenses/ecosrh-1.1.yml b/src/licensedcode/data/licenses/ecosrh-1.1.yml index 6b1a56f9efb..e4b3bddf804 100644 --- a/src/licensedcode/data/licenses/ecosrh-1.1.yml +++ b/src/licensedcode/data/licenses/ecosrh-1.1.yml @@ -11,10 +11,10 @@ faq_url: http://ecos.sourceware.org/license-overview.html ignorable_copyrights: - Copyright (c) 1998, 1999, 2000 Red Hat, Inc. - Copyright (c) 1998, 1999, 2000 Red Hat, Inc. (http://www.redhat.com/) -ignorable_authors: - - Red Hat ignorable_holders: - Red Hat, Inc. +ignorable_authors: + - Red Hat ignorable_urls: - http://sourceware.cygnus.com/ecos - http://www.redhat.com/ diff --git a/src/licensedcode/data/licenses/efl-1.0.yml b/src/licensedcode/data/licenses/efl-1.0.yml index 5674df9c410..a6c1da47e44 100644 --- a/src/licensedcode/data/licenses/efl-1.0.yml +++ b/src/licensedcode/data/licenses/efl-1.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was OSI certified. This license has been superseded by v2.0 spdx_license_key: EFL-1.0 +osi_license_key: EFL-1.0 text_urls: - http://www.eiffel-nice.org/license/forum.txt - https://fedoraproject.org/wiki/Licensing/Eiffel_Forum_License_V1 @@ -15,4 +16,3 @@ osi_url: http://www.opensource.org/licenses/ver1_eiffel.php other_urls: - http://opensource.org/licenses/EFL-1.0 - https://opensource.org/licenses/EFL-1.0 -osi_license_key: EFL-1.0 diff --git a/src/licensedcode/data/licenses/efl-2.0.yml b/src/licensedcode/data/licenses/efl-2.0.yml index 1fc525ce64e..224cddde081 100644 --- a/src/licensedcode/data/licenses/efl-2.0.yml +++ b/src/licensedcode/data/licenses/efl-2.0.yml @@ -6,6 +6,7 @@ owner: Eiffel NICE homepage_url: http://www.eiffel-nice.org/license/ notes: Per SPDX.org, this license is OSI certified spdx_license_key: EFL-2.0 +osi_license_key: EFL-2.0 text_urls: - http://www.eiffel-nice.org/license/eiffel-forum-license-2.txt - http://www.opensource-definition.org/licenses/ver2_eiffel.html @@ -17,4 +18,3 @@ other_urls: - http://opensource.org/licenses/EFL-2.0 - http://www.eiffel-nice.org/license/eiffel-forum-license-2.html - https://opensource.org/licenses/EFL-2.0 -osi_license_key: EFL-2.0 diff --git a/src/licensedcode/data/licenses/elastic-license-v2.yml b/src/licensedcode/data/licenses/elastic-license-v2.yml index a3ae151ff86..ed26ad97e05 100644 --- a/src/licensedcode/data/licenses/elastic-license-v2.yml +++ b/src/licensedcode/data/licenses/elastic-license-v2.yml @@ -2,9 +2,9 @@ key: elastic-license-v2 short_name: Elastic License 2.0 (ELv2) name: Elastic License 2.0 (ELv2) category: Source-available -spdx_license_key: Elastic-2.0 owner: Elastic homepage_url: https://www.elastic.co/licensing/elastic-license +spdx_license_key: Elastic-2.0 other_spdx_license_keys: - LicenseRef-scancode-elastic-license-v2 text_urls: diff --git a/src/licensedcode/data/licenses/enhydra-1.1.yml b/src/licensedcode/data/licenses/enhydra-1.1.yml index 76800e42a99..cd21db8249c 100644 --- a/src/licensedcode/data/licenses/enhydra-1.1.yml +++ b/src/licensedcode/data/licenses/enhydra-1.1.yml @@ -11,11 +11,11 @@ minimum_coverage: 30 ignorable_copyrights: - Copyright 1997-2000 Lutris Technologies (http://www.lutris.com) - Copyright Lutris Technologies, Inc. -ignorable_authors: - - Lutris Technologies, Inc. ignorable_holders: - Lutris Technologies - Lutris Technologies, Inc. +ignorable_authors: + - Lutris Technologies, Inc. ignorable_urls: - http://www.enhydra.org/ - http://www.lutris.com/ diff --git a/src/licensedcode/data/licenses/entessa-1.0.yml b/src/licensedcode/data/licenses/entessa-1.0.yml index 5ea822e421e..130bdecddd9 100644 --- a/src/licensedcode/data/licenses/entessa-1.0.yml +++ b/src/licensedcode/data/licenses/entessa-1.0.yml @@ -17,10 +17,10 @@ other_urls: minimum_coverage: 90 ignorable_copyrights: - Copyright (c) 2003 Entessa, LLC. -ignorable_authors: - - openSEAL (http://www.openseal.org/) ignorable_holders: - Entessa, LLC. +ignorable_authors: + - openSEAL (http://www.openseal.org/) ignorable_urls: - http://www.entessa.com/ - http://www.openseal.org/ diff --git a/src/licensedcode/data/licenses/epl-1.0.yml b/src/licensedcode/data/licenses/epl-1.0.yml index 604741df849..ab619f2c520 100644 --- a/src/licensedcode/data/licenses/epl-1.0.yml +++ b/src/licensedcode/data/licenses/epl-1.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license is OSI certifified EPL replaced the CPL on 28 June 2005. spdx_license_key: EPL-1.0 +osi_license_key: EPL-1.0 text_urls: - http://www.eclipse.org/legal/epl-v10.html osi_url: http://opensource.org/licenses/eclipse-1.0.php @@ -15,4 +16,3 @@ faq_url: http://eclipse.org/legal/eplfaq.php other_urls: - http://www.opensource.org/licenses/EPL-1.0 - https://opensource.org/licenses/EPL-1.0 -osi_license_key: EPL-1.0 diff --git a/src/licensedcode/data/licenses/eu-datagrid.yml b/src/licensedcode/data/licenses/eu-datagrid.yml index 908e7447bc1..973891af13f 100644 --- a/src/licensedcode/data/licenses/eu-datagrid.yml +++ b/src/licensedcode/data/licenses/eu-datagrid.yml @@ -6,6 +6,7 @@ owner: DataGrid Project homepage_url: http://eu-datagrid.web.cern.ch/eu-datagrid/license.html notes: Per SPDX.org, this license is OSI certified spdx_license_key: EUDatagrid +osi_license_key: EUDatagrid text_urls: - http://eu-datagrid.web.cern.ch/eu-datagrid/license.html osi_url: http://www.opensource.org/licenses/eudatagrid.php @@ -15,13 +16,12 @@ other_urls: - https://opensource.org/licenses/EUDatagrid ignorable_copyrights: - Copyright (c) 2001 EU DataGrid +ignorable_holders: + - EU DataGrid ignorable_authors: - hep-project-grid-edg-license@cern.ch - the EU DataGrid (http://www.eu-datagrid.org/) -ignorable_holders: - - EU DataGrid ignorable_urls: - http://www.eu-datagrid.org/ ignorable_emails: - hep-project-grid-edg-license@cern.ch -osi_license_key: EUDatagrid diff --git a/src/licensedcode/data/licenses/eupl-1.1.yml b/src/licensedcode/data/licenses/eupl-1.1.yml index a85b2d89ce3..e98c100fb17 100644 --- a/src/licensedcode/data/licenses/eupl-1.1.yml +++ b/src/licensedcode/data/licenses/eupl-1.1.yml @@ -9,6 +9,7 @@ notes: | certified. This license is available in the 22 official languages of the EU. The English version is included here. spdx_license_key: EUPL-1.1 +osi_license_key: EUPL-1.1 text_urls: - http://ec.europa.eu/idabc/eupl other_urls: @@ -23,4 +24,3 @@ ignorable_copyrights: - (c) the European Community 2007 ignorable_holders: - the European Community -osi_license_key: EUPL-1.1 diff --git a/src/licensedcode/data/licenses/fastbuild-2012-2020.yml b/src/licensedcode/data/licenses/fastbuild-2012-2020.yml index 2e089dd3d1f..66e3a9694b9 100644 --- a/src/licensedcode/data/licenses/fastbuild-2012-2020.yml +++ b/src/licensedcode/data/licenses/fastbuild-2012-2020.yml @@ -4,11 +4,10 @@ name: FASTBuild License 2012-2020 category: Permissive owner: fastbuild.org homepage_url: https://www.fastbuild.org/docs/license.html -standard_notice: Copyright (c) 2012-2020 Franta Fulin spdx_license_key: LicenseRef-scancode-fastbuild-2012-2020 +minimum_coverage: 80 +standard_notice: Copyright (c) 2012-2020 Franta Fulin ignorable_copyrights: - - (c) 2012-2020 Franta Fulin + - (c) 2012-2020 Franta Fulin ignorable_holders: - - Franta Fulin -minimum_coverage: 80 - + - Franta Fulin diff --git a/src/licensedcode/data/licenses/frameworx-1.0.yml b/src/licensedcode/data/licenses/frameworx-1.0.yml index e148ff8110a..dc0b34a66e4 100644 --- a/src/licensedcode/data/licenses/frameworx-1.0.yml +++ b/src/licensedcode/data/licenses/frameworx-1.0.yml @@ -16,9 +16,9 @@ other_urls: - https://opensource.org/licenses/Frameworx-1.0 ignorable_copyrights: - (c) THE FRAMEWORX COMPANY 2003 -ignorable_authors: - - The Frameworx Company ignorable_holders: - THE FRAMEWORX COMPANY +ignorable_authors: + - The Frameworx Company ignorable_urls: - http://www.frameworx.com/ diff --git a/src/licensedcode/data/licenses/fraunhofer-iso-14496-10.yml b/src/licensedcode/data/licenses/fraunhofer-iso-14496-10.yml index d68364091bf..3beea0ec216 100644 --- a/src/licensedcode/data/licenses/fraunhofer-iso-14496-10.yml +++ b/src/licensedcode/data/licenses/fraunhofer-iso-14496-10.yml @@ -5,13 +5,13 @@ category: Permissive owner: Fraunhofer-Gesellschaft spdx_license_key: LicenseRef-scancode-fraunhofer-iso-14496-10 minimum_coverage: 60 -ignorable_authors: - - Heiko Schwarz ignorable_copyrights: - Copyright (c) ISO/IEC 2005 - Copyright 2005, International Telecommunications Union, Geneva ignorable_holders: - ISO/IEC - International Telecommunications Union, Geneva +ignorable_authors: + - Heiko Schwarz ignorable_urls: - http://www.itu.int/ diff --git a/src/licensedcode/data/licenses/free-unknown.yml b/src/licensedcode/data/licenses/free-unknown.yml index 1c26b957608..a4bad89f20d 100644 --- a/src/licensedcode/data/licenses/free-unknown.yml +++ b/src/licensedcode/data/licenses/free-unknown.yml @@ -3,7 +3,7 @@ short_name: Free unknown name: Free unknown license detected but not recognized category: Unstated License owner: Unspecified +notes: This case applies to software with a notice that refers in a non-specific manner to a + free or open-source license, but where it is not possible to determine that specific license. is_unknown: yes spdx_license_key: LicenseRef-scancode-free-unknown -notes: This case applies to software with a notice that refers in a non-specific manner to a - free or open-source license, but where it is not possible to determine that specific license. diff --git a/src/licensedcode/data/licenses/freemarker.yml b/src/licensedcode/data/licenses/freemarker.yml index 9acc7156391..164d14a519b 100644 --- a/src/licensedcode/data/licenses/freemarker.yml +++ b/src/licensedcode/data/licenses/freemarker.yml @@ -10,10 +10,10 @@ text_urls: - http://freemarker.org/docs/app_license.html ignorable_copyrights: - Copyright (c) 2003 The Visigoth Software Society -ignorable_authors: - - the Visigoth Software Society (http://www.visigoths.org/) ignorable_holders: - The Visigoth Software Society +ignorable_authors: + - the Visigoth Software Society (http://www.visigoths.org/) ignorable_urls: - http://www.apache.org/licenses/LICENSE-2.0 - http://www.visigoths.org/ diff --git a/src/licensedcode/data/licenses/fsf-ap.yml b/src/licensedcode/data/licenses/fsf-ap.yml index dff3490b632..eace20ea5be 100644 --- a/src/licensedcode/data/licenses/fsf-ap.yml +++ b/src/licensedcode/data/licenses/fsf-ap.yml @@ -15,4 +15,4 @@ other_urls: - http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html - https://fedoraproject.org/wiki/Licensing/FSFAP - https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html -minimum_coverage: 85 \ No newline at end of file +minimum_coverage: 85 diff --git a/src/licensedcode/data/licenses/generic-cla.yml b/src/licensedcode/data/licenses/generic-cla.yml index 91d7473dcdf..71e5bd4b6a2 100644 --- a/src/licensedcode/data/licenses/generic-cla.yml +++ b/src/licensedcode/data/licenses/generic-cla.yml @@ -1,8 +1,8 @@ key: generic-cla -is_generic: yes short_name: Generic CLA name: Prior Generic Contributor License Agreement category: Unstated License owner: Unspecified -spdx_license_key: LicenseRef-scancode-generic-cla notes: this is a generic license for CLAs. +is_generic: yes +spdx_license_key: LicenseRef-scancode-generic-cla diff --git a/src/licensedcode/data/licenses/generic-exception.yml b/src/licensedcode/data/licenses/generic-exception.yml index 4aedc44b03b..c36dda48d49 100644 --- a/src/licensedcode/data/licenses/generic-exception.yml +++ b/src/licensedcode/data/licenses/generic-exception.yml @@ -3,9 +3,9 @@ short_name: Generic Exception Notice name: Generic Exception Notice category: Unstated License owner: Unspecified +notes: This is a generic license exception notice where the exception text has not been named + and published publicly. Actual terms are most commonly related to rare, one-off extra permission + to the A/L/GPL licenses. is_exception: yes is_generic: yes spdx_license_key: LicenseRef-scancode-generic-exception -notes: This is a generic license exception notice where the exception text has not been named - and published publicly. Actual terms are most commonly related to rare, one-off - extra permission to the A/L/GPL licenses. diff --git a/src/licensedcode/data/licenses/generic-export-compliance.yml b/src/licensedcode/data/licenses/generic-export-compliance.yml index b0bee1a9f3a..2f05f24a6e0 100644 --- a/src/licensedcode/data/licenses/generic-export-compliance.yml +++ b/src/licensedcode/data/licenses/generic-export-compliance.yml @@ -3,7 +3,7 @@ short_name: Generic Export Compliance Notice name: Generic Export Compliance Notice category: Unstated License owner: Unspecified +notes: This is a generic export compliance notice where the text has not been named and published + publicly. Actual terms are most commonly related to cryptography. is_generic: yes spdx_license_key: LicenseRef-scancode-generic-export-compliance -notes: This is a generic export compliance notice where the text has not been named and - published publicly. Actual terms are most commonly related to cryptography. diff --git a/src/licensedcode/data/licenses/generic-tos.yml b/src/licensedcode/data/licenses/generic-tos.yml index 6e895dca2b1..85feda6bcdc 100644 --- a/src/licensedcode/data/licenses/generic-tos.yml +++ b/src/licensedcode/data/licenses/generic-tos.yml @@ -3,7 +3,7 @@ short_name: Generic ToS name: Generic Terms of Service category: Unstated License owner: Unspecified +notes: This is a generic license for Terms of Service such as privacy terms and and other ToS-like + agreements found in software that are not directly licenses. is_generic: yes spdx_license_key: LicenseRef-scancode-generic-tos -notes: This is a generic license for Terms of Service such as privacy terms and and other - ToS-like agreements found in software that are not directly licenses. diff --git a/src/licensedcode/data/licenses/generic-trademark.yml b/src/licensedcode/data/licenses/generic-trademark.yml index 3bb38a5a3b7..f9a1dd52365 100644 --- a/src/licensedcode/data/licenses/generic-trademark.yml +++ b/src/licensedcode/data/licenses/generic-trademark.yml @@ -3,10 +3,9 @@ short_name: Generic Trademark Notice name: Generic Trademark and Name Protection Notice category: Unstated License owner: Unspecified +notes: This is a generic Trademark and name realted notice. Actual terms are most commonly related + to name use restrictions and no endorsement. This should be used only for rare one-off notices. is_generic: yes spdx_license_key: LicenseRef-scancode-generic-trademark other_spdx_license_keys: - LicenseRef-scancode-trademark-notice -notes: This is a generic Trademark and name realted notice. Actual terms are most commonly - related to name use restrictions and no endorsement. This should be used only for rare one-off - notices. diff --git a/src/licensedcode/data/licenses/geoff-kuenning-1993.yml b/src/licensedcode/data/licenses/geoff-kuenning-1993.yml index 9504003c050..1339e685ea8 100644 --- a/src/licensedcode/data/licenses/geoff-kuenning-1993.yml +++ b/src/licensedcode/data/licenses/geoff-kuenning-1993.yml @@ -7,7 +7,7 @@ homepage_url: https://www.hitachi.co.jp/Prod/comp/soft1/jp1/trial/trialv12/sla/l spdx_license_key: LicenseRef-scancode-geoff-kuenning-1993 ignorable_copyrights: - Copyright 1993, Geoff Kuenning, Granada Hills, CA -ignorable_authors: - - Geoff Kuenning ignorable_holders: - Geoff Kuenning, Granada Hills, CA +ignorable_authors: + - Geoff Kuenning diff --git a/src/licensedcode/data/licenses/glwtpl.yml b/src/licensedcode/data/licenses/glwtpl.yml index 30ddd401dd7..13773e0b9c1 100644 --- a/src/licensedcode/data/licenses/glwtpl.yml +++ b/src/licensedcode/data/licenses/glwtpl.yml @@ -8,7 +8,6 @@ spdx_license_key: GLWTPL other_urls: - https://github.com/me-shaon/GLWTPL/commit/da5f6bc734095efbacb442c0b31e33a65b9d6e85 ignorable_copyrights: - - Copyright (c) Everyone + - Copyright (c) Everyone ignorable_holders: - - Everyone - + - Everyone diff --git a/src/licensedcode/data/licenses/gpl-1.0-plus.yml b/src/licensedcode/data/licenses/gpl-1.0-plus.yml index 4eb988723f4..311c3b5d2a4 100644 --- a/src/licensedcode/data/licenses/gpl-1.0-plus.yml +++ b/src/licensedcode/data/licenses/gpl-1.0-plus.yml @@ -15,9 +15,8 @@ other_urls: - https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html minimum_coverage: 99 ignorable_copyrights: - - Copyright (c) 1989 Free Software Foundation, Inc. - - copyrighted by the Free Software Foundation + - Copyright (c) 1989 Free Software Foundation, Inc. + - copyrighted by the Free Software Foundation ignorable_holders: - - Free Software Foundation, Inc. - - the Free Software Foundation - + - Free Software Foundation, Inc. + - the Free Software Foundation diff --git a/src/licensedcode/data/licenses/gpl-2.0-plus.yml b/src/licensedcode/data/licenses/gpl-2.0-plus.yml index 72dfc5dfef1..a8e83a0abb0 100644 --- a/src/licensedcode/data/licenses/gpl-2.0-plus.yml +++ b/src/licensedcode/data/licenses/gpl-2.0-plus.yml @@ -19,9 +19,8 @@ other_urls: - https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html minimum_coverage: 99 ignorable_copyrights: - - Copyright (c) 1989, 1991 Free Software Foundation, Inc. - - copyrighted by the Free Software Foundation + - Copyright (c) 1989, 1991 Free Software Foundation, Inc. + - copyrighted by the Free Software Foundation ignorable_holders: - - Free Software Foundation, Inc. - - the Free Software Foundation - + - Free Software Foundation, Inc. + - the Free Software Foundation diff --git a/src/licensedcode/data/licenses/gpl-2.0.yml b/src/licensedcode/data/licenses/gpl-2.0.yml index 42ed20f6420..443bc2b07d6 100644 --- a/src/licensedcode/data/licenses/gpl-2.0.yml +++ b/src/licensedcode/data/licenses/gpl-2.0.yml @@ -4,25 +4,21 @@ name: GNU General Public License 2.0 category: Copyleft owner: Free Software Foundation (FSF) homepage_url: http://www.gnu.org/licenses/gpl-2.0.html -notes: This is the last version of the GPL text as published by the FSF. - This variation was published around about the time of the FSF released the GPL 3 - in July 2007. See http://web.archive.org/web/20070716031727/http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt - It is found live here https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt - and here https://www.gnu.org/licenses/old-licenses/gpl-2.0.html - It refers to the Franklin Street address and to the - GNU Lesser General Public License everywhere both in the text and HTML - formats. There are many other variations of the GPL 2.0 text that were - published over the years by the FSF and the gnu.org website. You can find the - detailed history of this text at https://github.com/pombredanne/gpl-history - and each variant is available as a license detection rule. - Per SPDX.org, this license was released June 1991 - This license is OSI certified. - +notes: This is the last version of the GPL text as published by the FSF. This variation was + published around about the time of the FSF released the GPL 3 in July 2007. See http://web.archive.org/web/20070716031727/http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + It is found live here https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt and here https://www.gnu.org/licenses/old-licenses/gpl-2.0.html + It refers to the Franklin Street address and to the GNU Lesser General Public License everywhere + both in the text and HTML formats. There are many other variations of the GPL 2.0 text that + were published over the years by the FSF and the gnu.org website. You can find the detailed + history of this text at https://github.com/pombredanne/gpl-history and each variant is available + as a license detection rule. Per SPDX.org, this license was released June 1991 This license + is OSI certified. spdx_license_key: GPL-2.0-only other_spdx_license_keys: - GPL-2.0 - GPL 2.0 - LicenseRef-GPL-2.0 +osi_license_key: GPL-2.0 text_urls: - http://www.gnu.org/licenses/gpl-2.0.txt - http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt @@ -43,4 +39,3 @@ ignorable_copyrights: ignorable_holders: - Free Software Foundation, Inc. - the Free Software Foundation -osi_license_key: GPL-2.0 diff --git a/src/licensedcode/data/licenses/gpl-3.0-plus.yml b/src/licensedcode/data/licenses/gpl-3.0-plus.yml index 0ba8411ada4..68b37c0da91 100644 --- a/src/licensedcode/data/licenses/gpl-3.0-plus.yml +++ b/src/licensedcode/data/licenses/gpl-3.0-plus.yml @@ -19,11 +19,11 @@ other_urls: - https://www.gnu.org/licenses/gpl-3.0-standalone.html minimum_coverage: 99 ignorable_copyrights: - - Copyright (c) 2007 Free Software Foundation, Inc. + - Copyright (c) 2007 Free Software Foundation, Inc. ignorable_holders: - - Free Software Foundation, Inc. + - Free Software Foundation, Inc. ignorable_urls: - - http://www.gnu.org/licenses/ - - https://fsf.org/ - - https://www.gnu.org/licenses/ - - https://www.gnu.org/licenses/why-not-lgpl.html + - http://www.gnu.org/licenses/ + - https://fsf.org/ + - https://www.gnu.org/licenses/ + - https://www.gnu.org/licenses/why-not-lgpl.html diff --git a/src/licensedcode/data/licenses/gpl-3.0.yml b/src/licensedcode/data/licenses/gpl-3.0.yml index 42ac548e1cf..bbedb602940 100644 --- a/src/licensedcode/data/licenses/gpl-3.0.yml +++ b/src/licensedcode/data/licenses/gpl-3.0.yml @@ -11,6 +11,7 @@ spdx_license_key: GPL-3.0-only other_spdx_license_keys: - GPL-3.0 - LicenseRef-gpl-3.0 +osi_license_key: GPL-3.0 text_urls: - http://www.gnu.org/licenses/gpl-3.0-standalone.html - http://www.gnu.org/licenses/gpl-3.0.txt @@ -29,4 +30,3 @@ ignorable_urls: - https://fsf.org/ - https://www.gnu.org/licenses/ - https://www.gnu.org/licenses/why-not-lgpl.html -osi_license_key: GPL-3.0 diff --git a/src/licensedcode/data/licenses/gsoap-1.3a.yml b/src/licensedcode/data/licenses/gsoap-1.3a.yml index 35957afdca9..e36b6336dfd 100644 --- a/src/licensedcode/data/licenses/gsoap-1.3a.yml +++ b/src/licensedcode/data/licenses/gsoap-1.3a.yml @@ -6,10 +6,10 @@ owner: Genivia spdx_license_key: LicenseRef-scancode-gsoap-1.3a ignorable_copyrights: - Copyright (c) 2001-2004 Robert A. van Engelen, Genivia inc. -ignorable_authors: - - Robert A. van Engelen ignorable_holders: - Robert A. van Engelen, Genivia inc. +ignorable_authors: + - Robert A. van Engelen ignorable_urls: - http://genivia.com/Products/gsoap/contract.html - http://genivia.com/Products/gsoap/license.pdf diff --git a/src/licensedcode/data/licenses/gsoap-1.3b.yml b/src/licensedcode/data/licenses/gsoap-1.3b.yml index 69f4059a36c..6c3a8c74b30 100644 --- a/src/licensedcode/data/licenses/gsoap-1.3b.yml +++ b/src/licensedcode/data/licenses/gsoap-1.3b.yml @@ -10,10 +10,10 @@ text_urls: ignorable_copyrights: - Copyright (c) 2001-2004 Robert A. van Engelen, Genivia inc. - Copyright (c) 2001-2009 Robert A. van Engelen, Genivia inc. -ignorable_authors: - - Robert A. van Engelen ignorable_holders: - Robert A. van Engelen, Genivia inc. +ignorable_authors: + - Robert A. van Engelen ignorable_urls: - http://www.cs.fsu.edu/ - http://www.genivia.com/ diff --git a/src/licensedcode/data/licenses/hs-regexp.yml b/src/licensedcode/data/licenses/hs-regexp.yml index 6c8f2209386..d2f9a0b25eb 100644 --- a/src/licensedcode/data/licenses/hs-regexp.yml +++ b/src/licensedcode/data/licenses/hs-regexp.yml @@ -4,6 +4,7 @@ name: Henry Spencer Regexp License category: Permissive owner: Henry Spencer homepage_url: https://github.com/garyhouston/regex/blob/master/COPYRIGHT +notes: this is very similar to the purdue-bsd license spdx_license_key: Spencer-94 text_urls: - http://search.cpan.org/~knok/File-MMagic-1.12/MMagic.pm @@ -13,5 +14,4 @@ text_urls: - https://dev.mysql.com/doc/mysql-security-excerpt/5.0/en/license-regex.html other_urls: - https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License -notes: this is very similar to the purdue-bsd license minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/ibmpl-1.0.yml b/src/licensedcode/data/licenses/ibmpl-1.0.yml index 1ce07a0de76..7ef11271972 100644 --- a/src/licensedcode/data/licenses/ibmpl-1.0.yml +++ b/src/licensedcode/data/licenses/ibmpl-1.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license is OSI certified. This license was superseded by CPL. spdx_license_key: IPL-1.0 +osi_license_key: IPL-1.0 text_urls: - http://www.opensource.org/licenses/ibmpl.php osi_url: http://www.opensource.org/licenses/ibmpl.php @@ -18,4 +19,3 @@ ignorable_copyrights: - Copyright (c) 1996, 1999 International Business Machines Corporation and others ignorable_holders: - International Business Machines Corporation and others -osi_license_key: IPL-1.0 diff --git a/src/licensedcode/data/licenses/ietf-trust.yml b/src/licensedcode/data/licenses/ietf-trust.yml index ea0abb2f605..5ca0fe1774c 100644 --- a/src/licensedcode/data/licenses/ietf-trust.yml +++ b/src/licensedcode/data/licenses/ietf-trust.yml @@ -16,12 +16,12 @@ minimum_coverage: 70 ignorable_copyrights: - Copyright (c) IETF Trust - Copyright (c) IETF Trust and the persons identified as the document authors -ignorable_authors: - - IETF Trust - - the IETF Trust ignorable_holders: - IETF Trust - IETF Trust and the persons identified as the document authors +ignorable_authors: + - IETF Trust + - the IETF Trust ignorable_urls: - http://opensource.org/licenses/bsd-license.php - http://trustee.ietf.org/license-info diff --git a/src/licensedcode/data/licenses/indiana-extreme-1.2.yml b/src/licensedcode/data/licenses/indiana-extreme-1.2.yml index 5e69a1efbca..b411b9270fc 100644 --- a/src/licensedcode/data/licenses/indiana-extreme-1.2.yml +++ b/src/licensedcode/data/licenses/indiana-extreme-1.2.yml @@ -10,9 +10,9 @@ text_urls: - https://fedoraproject.org/wiki/Licensing/xpp ignorable_copyrights: - Copyright (c) 2004 The Trustees of Indiana University -ignorable_authors: - - the Indiana University Extreme! Lab ignorable_holders: - The Trustees of Indiana University +ignorable_authors: + - the Indiana University Extreme! Lab ignorable_urls: - http://www.extreme.indiana.edu/ diff --git a/src/licensedcode/data/licenses/indiana-extreme.yml b/src/licensedcode/data/licenses/indiana-extreme.yml index 25ce998eb75..eedab131e50 100644 --- a/src/licensedcode/data/licenses/indiana-extreme.yml +++ b/src/licensedcode/data/licenses/indiana-extreme.yml @@ -8,9 +8,9 @@ text_urls: - http://www.bearcave.com/software/java/xml/xmlpull_license.html ignorable_copyrights: - Copyright (c) 2002 Extreme! Lab, Indiana University -ignorable_authors: - - the Indiana University Extreme! Lab (http://www.extreme.indiana.edu/) ignorable_holders: - Extreme! Lab, Indiana University +ignorable_authors: + - the Indiana University Extreme! Lab (http://www.extreme.indiana.edu/) ignorable_urls: - http://www.extreme.indiana.edu/ diff --git a/src/licensedcode/data/licenses/info-zip-1997-10.yml b/src/licensedcode/data/licenses/info-zip-1997-10.yml index 4b70864ec68..0e78a68bad8 100644 --- a/src/licensedcode/data/licenses/info-zip-1997-10.yml +++ b/src/licensedcode/data/licenses/info-zip-1997-10.yml @@ -14,9 +14,6 @@ ignorable_copyrights: - Copyright 1989 Samuel H. Smith - copyrighted 1997 by Steve P. Miller - copyrighted by Norbert Pueschel, -ignorable_authors: - - many people associated with the Info-ZIP group - - the Info-ZIP group ignorable_holders: - Greg Roelofs - Igor Mandrichenko @@ -24,6 +21,9 @@ ignorable_holders: - Norbert Pueschel - Samuel H. Smith - Steve P. Miller +ignorable_authors: + - many people associated with the Info-ZIP group + - the Info-ZIP group ignorable_urls: - ftp://ftp.cdrom.com/pub/infozip/ - ftp://ftp.wustl.edu/pub/aminet/util/time/clockdaemon.lha diff --git a/src/licensedcode/data/licenses/inner-net-2.0.yml b/src/licensedcode/data/licenses/inner-net-2.0.yml index 57b1306a850..07ecb153dcb 100644 --- a/src/licensedcode/data/licenses/inner-net-2.0.yml +++ b/src/licensedcode/data/licenses/inner-net-2.0.yml @@ -4,7 +4,7 @@ name: Inner Net License 2.0 category: Permissive owner: Unspecified spdx_license_key: LicenseRef-scancode-inner-net-2.0 -minimum_coverage: 60 other_urls: - https://fedoraproject.org/wiki/Licensing/Inner_Net_License - - https://www.calculate-linux.org/packages/licenses/inner-net \ No newline at end of file + - https://www.calculate-linux.org/packages/licenses/inner-net +minimum_coverage: 60 diff --git a/src/licensedcode/data/licenses/intel-bsd-2-clause.yml b/src/licensedcode/data/licenses/intel-bsd-2-clause.yml index 26a7ae7148a..0388d1b2a2f 100644 --- a/src/licensedcode/data/licenses/intel-bsd-2-clause.yml +++ b/src/licensedcode/data/licenses/intel-bsd-2-clause.yml @@ -4,8 +4,8 @@ name: Intel BSD 2 Clause License category: Permissive owner: Intel Corporation notes: | - this license is seen in ZFS and FreeBSD. It is the same as intel-bsd - but with 2 clauses only. + this license is seen in ZFS and FreeBSD. It is the same as intel-bsd + but with 2 clauses only. spdx_license_key: LicenseRef-scancode-intel-bsd-2-clause text_urls: - https://github.com/freebsd/freebsd-src/blob/098dbd7ff7f3da9dda03802cdb2d8755f816eada/cddl/usr.sbin/zfsd/zfsd_exception.cc diff --git a/src/licensedcode/data/licenses/intel-bsd.yml b/src/licensedcode/data/licenses/intel-bsd.yml index 881c7a81f86..8504c0cb077 100644 --- a/src/licensedcode/data/licenses/intel-bsd.yml +++ b/src/licensedcode/data/licenses/intel-bsd.yml @@ -4,8 +4,8 @@ name: Intel BSD License category: Permissive owner: Intel Corporation notes: | - this license is often used in conjunction with a choice of gpl-2.0 such - as in the Linux Kernel + this license is often used in conjunction with a choice of gpl-2.0 such + as in the Linux Kernel spdx_license_key: LicenseRef-scancode-intel-bsd text_urls: - https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/tree/include/acpi/acoutput.h?h=v2.6.24&id=f9f4601f331aa1226d7a798a01950efbb388f07f diff --git a/src/licensedcode/data/licenses/interbase-1.0.yml b/src/licensedcode/data/licenses/interbase-1.0.yml index c362d360eab..17052519e94 100644 --- a/src/licensedcode/data/licenses/interbase-1.0.yml +++ b/src/licensedcode/data/licenses/interbase-1.0.yml @@ -11,11 +11,11 @@ other_urls: - http://info.borland.com/devsupport/interbase/opensource/IPL.html ignorable_copyrights: - Copyright (c) Borland/Inprise +ignorable_holders: + - Borland/Inprise ignorable_authors: - Borland Software Corp. - InterBase Software Corp -ignorable_holders: - - Borland/Inprise ignorable_urls: - http://info.borland.com/devsupport/interbase/opensource/IPL.html - http://www.interbase.com/IPL.html diff --git a/src/licensedcode/data/licenses/jasper-1.0.yml b/src/licensedcode/data/licenses/jasper-1.0.yml index 0d189ccb61c..84682de9800 100644 --- a/src/licensedcode/data/licenses/jasper-1.0.yml +++ b/src/licensedcode/data/licenses/jasper-1.0.yml @@ -6,11 +6,11 @@ owner: JasperSoft spdx_license_key: LicenseRef-scancode-jasper-1.0 ignorable_copyrights: - Copyright (c) 2001-2003 Teodor Danciu (teodord@hotmail.com) +ignorable_holders: + - Teodor Danciu ignorable_authors: - Teodor Danciu (http://jasperreports.sourceforge.net) - Teodor Danciu http://jasperreports.sourceforge.net -ignorable_holders: - - Teodor Danciu ignorable_urls: - http://jasperreports.sourceforge.net/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/jelurida-public-1.1.yml b/src/licensedcode/data/licenses/jelurida-public-1.1.yml index fb173edfe12..3667d2287f1 100644 --- a/src/licensedcode/data/licenses/jelurida-public-1.1.yml +++ b/src/licensedcode/data/licenses/jelurida-public-1.1.yml @@ -4,10 +4,9 @@ name: Jeulurida Public License 1.1 category: Copyleft owner: Jelurida homepage_url: https://github.com/mrv777/NXT/blob/master/LICENSE.txt +spdx_license_key: LicenseRef-scancode-jelurida-public-1.1 standard_notice: | This program is distributed under the terms of the Jelurida Public License version 1.1 -spdx_license_key: LicenseRef-scancode-jelurida-public-1.1 ignorable_authors: - - Jelurida Swiss SA - + - Jelurida Swiss SA diff --git a/src/licensedcode/data/licenses/json.yml b/src/licensedcode/data/licenses/json.yml index dcd32ad0745..f43408d3ffc 100644 --- a/src/licensedcode/data/licenses/json.yml +++ b/src/licensedcode/data/licenses/json.yml @@ -10,4 +10,3 @@ text_urls: other_urls: - http://www.gnu.org/licenses/license-list.html#JSON minimum_coverage: 70 - diff --git a/src/licensedcode/data/licenses/jython.yml b/src/licensedcode/data/licenses/jython.yml index 6ea9ef35d36..7794da9e865 100644 --- a/src/licensedcode/data/licenses/jython.yml +++ b/src/licensedcode/data/licenses/jython.yml @@ -13,12 +13,12 @@ ignorable_copyrights: - Copyright (c) 1996-1999 Corporation for National Research Initiatives - Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Jython Developers - Copyright (c) 2007 Python Software Foundation -ignorable_authors: - - Brian Zimmer ignorable_holders: - Corporation for National Research Initiatives - Jython Developers - Python Software Foundation +ignorable_authors: + - Brian Zimmer ignorable_urls: - http://hdl.handle.net/1895.22/1006 - http://www.jython.org/license.txt diff --git a/src/licensedcode/data/licenses/katharos-0.1.0.yml b/src/licensedcode/data/licenses/katharos-0.1.0.yml index 4e3c5e517db..547f86b5a57 100644 --- a/src/licensedcode/data/licenses/katharos-0.1.0.yml +++ b/src/licensedcode/data/licenses/katharos-0.1.0.yml @@ -8,7 +8,6 @@ spdx_license_key: LicenseRef-scancode-katharos-0.1.0 text_urls: - https://github.com/katharostech/katharos-license/blob/v0.1.0/LICENSE.md ignorable_urls: - - https://firstdonoharm.dev/version/2/1/license.html - - https://github.com/raisely/NoHarm - - https://spdx.org/licenses/BSD-3-Clause.html - + - https://firstdonoharm.dev/version/2/1/license.html + - https://github.com/raisely/NoHarm + - https://spdx.org/licenses/BSD-3-Clause.html diff --git a/src/licensedcode/data/licenses/kerberos.yml b/src/licensedcode/data/licenses/kerberos.yml index 720b4976bfa..6d12f7dce9d 100644 --- a/src/licensedcode/data/licenses/kerberos.yml +++ b/src/licensedcode/data/licenses/kerberos.yml @@ -12,11 +12,11 @@ ignorable_copyrights: - Copyright 1985-2002 by the Massachusetts Institute of Technology - Copyright 2000 by Zero-Knowledge Systems, Inc. - Copyright, OpenVision Technologies, Inc., 1996 -ignorable_authors: - - the University of California, Berkeley and its contributors ignorable_holders: - Dr Brian Gladman - OpenVision Technologies, Inc. - Regents of the University of California - Zero-Knowledge Systems, Inc. - the Massachusetts Institute of Technology +ignorable_authors: + - the University of California, Berkeley and its contributors diff --git a/src/licensedcode/data/licenses/kicad-libraries-exception.yml b/src/licensedcode/data/licenses/kicad-libraries-exception.yml index ff4cab05723..2ba7086b36d 100644 --- a/src/licensedcode/data/licenses/kicad-libraries-exception.yml +++ b/src/licensedcode/data/licenses/kicad-libraries-exception.yml @@ -3,11 +3,10 @@ short_name: KiCad Libraries Exception to CC-BY-SA-4.0 name: KiCad Libraries Exception to CC-BY-SA-4.0 category: Copyleft Limited owner: KiCad +notes: this is always an execption to the CC-BY-SA-4.0 license. and the homepage introduces + this expection this way "The KiCad libraries are licensed under the Creative Commons CC-BY-SA + 4.0 License, with the following exception." We used to track this as cc-by-sa-4.0 WITH generic-exception +is_exception: yes spdx_license_key: KiCad-libraries-exception other_urls: - https://www.kicad.org/libraries/license/ -notes: this is always an execption to the CC-BY-SA-4.0 license. - and the homepage introduces this expection this way "The KiCad libraries - are licensed under the Creative Commons CC-BY-SA 4.0 License, with the - following exception." - We used to track this as cc-by-sa-4.0 WITH generic-exception diff --git a/src/licensedcode/data/licenses/lbnl-bsd.yml b/src/licensedcode/data/licenses/lbnl-bsd.yml index 96647210033..c5c7cf36d69 100644 --- a/src/licensedcode/data/licenses/lbnl-bsd.yml +++ b/src/licensedcode/data/licenses/lbnl-bsd.yml @@ -9,8 +9,7 @@ other_urls: - https://fedoraproject.org/wiki/Licensing/LBNLBSD minimum_coverage: 90 ignorable_copyrights: - - Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley - National Laboratory + - Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley + National Laboratory ignorable_holders: - - The Regents of the University of California, through Lawrence Berkeley National Laboratory - + - The Regents of the University of California, through Lawrence Berkeley National Laboratory diff --git a/src/licensedcode/data/licenses/leap-motion-sdk-2019.yml b/src/licensedcode/data/licenses/leap-motion-sdk-2019.yml index a3809b084cd..8a8031ae62b 100644 --- a/src/licensedcode/data/licenses/leap-motion-sdk-2019.yml +++ b/src/licensedcode/data/licenses/leap-motion-sdk-2019.yml @@ -4,11 +4,10 @@ name: Leap Motion SDK Agreement 2019 category: Proprietary Free owner: Ultraleap homepage_url: https://central.leapmotion.com/agreements/SdkAgreement -faq_url: https://support.leapmotion.com/hc/en-us/articles/360004340197-SDK-Agreement-FAQs spdx_license_key: LicenseRef-scancode-leap-motion-sdk-2019 -ignorable_emails: - - developers@leapmotion.com - - partnerships@leapmotion.com +faq_url: https://support.leapmotion.com/hc/en-us/articles/360004340197-SDK-Agreement-FAQs ignorable_urls: - - http://leapmotion.com/legal - + - http://leapmotion.com/legal +ignorable_emails: + - developers@leapmotion.com + - partnerships@leapmotion.com diff --git a/src/licensedcode/data/licenses/lgpl-2.0-plus.yml b/src/licensedcode/data/licenses/lgpl-2.0-plus.yml index 989357ed769..2faeffec964 100644 --- a/src/licensedcode/data/licenses/lgpl-2.0-plus.yml +++ b/src/licensedcode/data/licenses/lgpl-2.0-plus.yml @@ -17,9 +17,8 @@ other_urls: - https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html minimum_coverage: 99 ignorable_copyrights: - - Copyright (c) 1991 Free Software Foundation, Inc. - - copyrighted by the Free Software Foundation + - Copyright (c) 1991 Free Software Foundation, Inc. + - copyrighted by the Free Software Foundation ignorable_holders: - - Free Software Foundation, Inc. - - the Free Software Foundation - + - Free Software Foundation, Inc. + - the Free Software Foundation diff --git a/src/licensedcode/data/licenses/lgpl-2.1-plus.yml b/src/licensedcode/data/licenses/lgpl-2.1-plus.yml index df3039fc2a1..85b229a3ee9 100644 --- a/src/licensedcode/data/licenses/lgpl-2.1-plus.yml +++ b/src/licensedcode/data/licenses/lgpl-2.1-plus.yml @@ -19,9 +19,8 @@ other_urls: - https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html minimum_coverage: 99 ignorable_copyrights: - - Copyright (c) 1991, 1999 Free Software Foundation, Inc. - - copyrighted by the Free Software Foundation + - Copyright (c) 1991, 1999 Free Software Foundation, Inc. + - copyrighted by the Free Software Foundation ignorable_holders: - - Free Software Foundation, Inc. - - the Free Software Foundation - + - Free Software Foundation, Inc. + - the Free Software Foundation diff --git a/src/licensedcode/data/licenses/lgpl-2.1.yml b/src/licensedcode/data/licenses/lgpl-2.1.yml index d8ac978fab4..d708494db34 100644 --- a/src/licensedcode/data/licenses/lgpl-2.1.yml +++ b/src/licensedcode/data/licenses/lgpl-2.1.yml @@ -11,6 +11,7 @@ spdx_license_key: LGPL-2.1-only other_spdx_license_keys: - LGPL-2.1 - LicenseRef-LGPL-2.1 +osi_license_key: LGPL-2.1 text_urls: - http://www.gnu.org/licenses/lgpl-2.1.txt osi_url: http://opensource.org/licenses/lgpl-2.1.php @@ -31,4 +32,3 @@ ignorable_copyrights: ignorable_holders: - Free Software Foundation, Inc. - the Free Software Foundation -osi_license_key: LGPL-2.1 diff --git a/src/licensedcode/data/licenses/lppl-1.3c.yml b/src/licensedcode/data/licenses/lppl-1.3c.yml index 7458a32dfd8..46c9676af88 100644 --- a/src/licensedcode/data/licenses/lppl-1.3c.yml +++ b/src/licensedcode/data/licenses/lppl-1.3c.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was released 4 May 2008 This license is OSI certified. spdx_license_key: LPPL-1.3c +osi_license_key: LPPL-1.3c text_urls: - http://www.latex-project.org/lppl/lppl-1-3c.txt other_urls: @@ -19,4 +20,3 @@ ignorable_holders: - LaTeX3 Project ignorable_urls: - http://www.latex-project.org/lppl.txt -osi_license_key: LPPL-1.3c diff --git a/src/licensedcode/data/licenses/lucent-pl-1.0.yml b/src/licensedcode/data/licenses/lucent-pl-1.0.yml index b4c9a388e57..2b23ca13e3b 100644 --- a/src/licensedcode/data/licenses/lucent-pl-1.0.yml +++ b/src/licensedcode/data/licenses/lucent-pl-1.0.yml @@ -5,10 +5,10 @@ category: Copyleft Limited owner: Alcatel-Lucent homepage_url: http://www.opensource.org/licenses/plan9.php spdx_license_key: LPL-1.0 +osi_license_key: LPL-1.0 text_urls: - http://www.opensource.org/licenses/plan9.php osi_url: http://www.opensource.org/licenses/plan9.php other_urls: - http://opensource.org/licenses/LPL-1.0 - https://opensource.org/licenses/LPL-1.0 -osi_license_key: LPL-1.0 diff --git a/src/licensedcode/data/licenses/lucent-pl-1.02.yml b/src/licensedcode/data/licenses/lucent-pl-1.02.yml index 5f5ca53524f..7884efcec15 100644 --- a/src/licensedcode/data/licenses/lucent-pl-1.02.yml +++ b/src/licensedcode/data/licenses/lucent-pl-1.02.yml @@ -6,6 +6,7 @@ owner: Alcatel-Lucent homepage_url: http://plan9.bell-labs.com/plan9/license.html notes: Per SPDX.org, this license is OSI certified. spdx_license_key: LPL-1.02 +osi_license_key: LPL-1.02 text_urls: - http://plan9.bell-labs.com/plan9/license.html other_urls: @@ -15,4 +16,3 @@ ignorable_copyrights: - Copyright (c) YEAR, ORGANIZATION and others ignorable_holders: - YEAR, ORGANIZATION and others -osi_license_key: LPL-1.02 diff --git a/src/licensedcode/data/licenses/mcrae-pl-4-r53.yml b/src/licensedcode/data/licenses/mcrae-pl-4-r53.yml index ac63f49cad9..0f6d7e0999e 100644 --- a/src/licensedcode/data/licenses/mcrae-pl-4-r53.yml +++ b/src/licensedcode/data/licenses/mcrae-pl-4-r53.yml @@ -4,8 +4,8 @@ name: McRae General Public License (version 4.r53) category: Proprietary Free owner: pgl.yoyo.org homepage_url: https://pgl.yoyo.org/license/ +spdx_license_key: LicenseRef-scancode-mcrae-pl-4-r53 faq_url: https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Bad_Licenses other_urls: - https://github.com/Pintu900/iit_project/blob/625c5cc85012428cc69f6094bbef8fe2abab92b6/.config/chromium/Default/Extensions/cjpalhdlnbpafiamejdnhcphjbkeiagm/1.24.2_0/assets/thirdparties/pgl.yoyo.org/as/README.md - https://github.com/naveednajam/Little-Snitch---Rule-GroupsV2/blob/39d3b9981eaa71eb2b0e96b7c1433854f3e7fb1b/sources/ads/yoyo.org/update.json -spdx_license_key: LicenseRef-scancode-mcrae-pl-4-r53 diff --git a/src/licensedcode/data/licenses/metageek-inssider-eula.yml b/src/licensedcode/data/licenses/metageek-inssider-eula.yml index 3ef06027532..c2813381f21 100644 --- a/src/licensedcode/data/licenses/metageek-inssider-eula.yml +++ b/src/licensedcode/data/licenses/metageek-inssider-eula.yml @@ -4,12 +4,11 @@ name: inSSIDer End User License Agreement category: Proprietary Free owner: MetaGeek homepage_url: https://www.metageek.com/legal/eula/inssider.html +spdx_license_key: LicenseRef-scancode-metageek-inssider-eula other_urls: - https://en.wikipedia.org/wiki/InSSIDer -spdx_license_key: LicenseRef-scancode-metageek-inssider-eula ignorable_copyrights: - - Copyrights Copyright 2005-2019 MetaGeek, LLC. - - copyright 2007-2019 MetaGeek, LLC. + - Copyrights Copyright 2005-2019 MetaGeek, LLC. + - copyright 2007-2019 MetaGeek, LLC. ignorable_holders: - - MetaGeek, LLC. - + - MetaGeek, LLC. diff --git a/src/licensedcode/data/licenses/minpack.LICENSE b/src/licensedcode/data/licenses/minpack.LICENSE index 4cb38b57254..051d012dddf 100644 --- a/src/licensedcode/data/licenses/minpack.LICENSE +++ b/src/licensedcode/data/licenses/minpack.LICENSE @@ -1,3 +1,5 @@ +Minpack Copyright Notice (1999) University of Chicago. All rights reserved + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/src/licensedcode/data/licenses/minpack.yml b/src/licensedcode/data/licenses/minpack.yml index 73884cc4cba..dc911a6c228 100644 --- a/src/licensedcode/data/licenses/minpack.yml +++ b/src/licensedcode/data/licenses/minpack.yml @@ -3,8 +3,11 @@ short_name: Minpack Copyright Notice name: Minpack Copyright Notice category: Permissive owner: University of Chicago -spdx_license_key: LicenseRef-scancode-minpack +homepage_url: http://www.netlib.org/minpack/disclaimer +spdx_license_key: Minpack +other_spdx_license_keys: + - LicenseRef-scancode-minpack text_urls: - http://www.netlib.org/minpack/disclaimer -ignorable_authors: - - the University of Chicago +other_urls: + - https://gitlab.com/libeigen/eigen/-/blob/master/COPYING.MINPACK diff --git a/src/licensedcode/data/licenses/mit-0.yml b/src/licensedcode/data/licenses/mit-0.yml index 0429b2ff09d..98ebf6b10aa 100644 --- a/src/licensedcode/data/licenses/mit-0.yml +++ b/src/licensedcode/data/licenses/mit-0.yml @@ -4,6 +4,10 @@ name: MIT No Attribution category: Permissive owner: Amazon Web Services homepage_url: https://github.com/awsdocs/aws-cloud9-user-guide/blob/master/LICENSE-SAMPLECODE +notes: | + The former ekioh license has been deprecated in favor of this license. Except + for the dangling ", subject to the following conditions:" text, the ekioh + license is essentially identical to the mit-0. spdx_license_key: MIT-0 other_spdx_license_keys: - LicenseRef-scancode-ekioh @@ -11,7 +15,3 @@ other_urls: - https://github.com/aws/mit-0 - https://romanrm.net/mit-zero - https://kryogenix.org/code/browser/licence.html -notes: | - The former ekioh license has been deprecated in favor of this license. Except - for the dangling ", subject to the following conditions:" text, the ekioh - license is essentially identical to the mit-0. diff --git a/src/licensedcode/data/licenses/mit-no-trademarks.yml b/src/licensedcode/data/licenses/mit-no-trademarks.yml index 9fd89a0df33..468b38789cb 100644 --- a/src/licensedcode/data/licenses/mit-no-trademarks.yml +++ b/src/licensedcode/data/licenses/mit-no-trademarks.yml @@ -6,7 +6,6 @@ owner: MIT homepage_url: http://web.mit.edu/ivlib/www/copyright.html spdx_license_key: LicenseRef-scancode-mit-no-trademarks ignorable_copyrights: - - Copyright 1995 by the Massachusetts Institute of Technology + - Copyright 1995 by the Massachusetts Institute of Technology ignorable_holders: - - the Massachusetts Institute of Technology - + - the Massachusetts Institute of Technology diff --git a/src/licensedcode/data/licenses/mod-dav-1.0.yml b/src/licensedcode/data/licenses/mod-dav-1.0.yml index 7d3478d2451..3a00eac074b 100644 --- a/src/licensedcode/data/licenses/mod-dav-1.0.yml +++ b/src/licensedcode/data/licenses/mod-dav-1.0.yml @@ -9,10 +9,10 @@ text_urls: - http://www.webdav.org/mod_dav/ ignorable_copyrights: - Copyright (c) 1998-2001 Greg Stein -ignorable_authors: - - Greg Stein ignorable_holders: - Greg Stein +ignorable_authors: + - Greg Stein ignorable_urls: - http://www.webdav.org/mod_dav ignorable_emails: diff --git a/src/licensedcode/data/licenses/mpl-1.0.yml b/src/licensedcode/data/licenses/mpl-1.0.yml index d671cc8a32b..1e8600aa68a 100644 --- a/src/licensedcode/data/licenses/mpl-1.0.yml +++ b/src/licensedcode/data/licenses/mpl-1.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was OSI certified. This license have been superseded by v1.1 spdx_license_key: MPL-1.0 +osi_license_key: MPL-1.0 text_urls: - http://www.mozilla.com/MPL/1.0/index.html - http://www.mozilla.org/MPL/1.0/ @@ -22,4 +23,3 @@ other_urls: - https://opensource.org/licenses/MPL-1.0 ignorable_urls: - http://www.mozilla.org/MPL/ -osi_license_key: MPL-1.0 diff --git a/src/licensedcode/data/licenses/mpl-1.1.yml b/src/licensedcode/data/licenses/mpl-1.1.yml index 0c1205a935f..bf93a1a2799 100644 --- a/src/licensedcode/data/licenses/mpl-1.1.yml +++ b/src/licensedcode/data/licenses/mpl-1.1.yml @@ -6,6 +6,7 @@ owner: Mozilla homepage_url: http://www.mozilla.org/MPL/MPL-1.1.html notes: Per SPDX.org, this license is OSI certified. spdx_license_key: MPL-1.1 +osi_license_key: MPL-1.1 text_urls: - http://www.mozilla.com/MPL/1.1/index.html - http://www.mozilla.org/MPL/1.1/ @@ -20,4 +21,3 @@ other_urls: - https://opensource.org/licenses/MPL-1.1 ignorable_urls: - http://www.mozilla.org/MPL/ -osi_license_key: MPL-1.1 diff --git a/src/licensedcode/data/licenses/ms-net-library-2016-05.yml b/src/licensedcode/data/licenses/ms-net-library-2016-05.yml index 4f7446d3938..4a787939b19 100644 --- a/src/licensedcode/data/licenses/ms-net-library-2016-05.yml +++ b/src/licensedcode/data/licenses/ms-net-library-2016-05.yml @@ -4,10 +4,9 @@ name: Microsoft .NET Library License 2016-05 category: Proprietary Free owner: Microsoft homepage_url: http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm -spdx_license_key: LicenseRef-scancode-ms-net-library-2016-05 notes: this is the version that existed at http://www.microsoft.com/net/dotnet_library_license.htm - from May 2016. - It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 + from May 2016. It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 +spdx_license_key: LicenseRef-scancode-ms-net-library-2016-05 ignorable_urls: - - http://www.microsoft.com/exporting - - http://go.microsoft.com/fwlink/?LinkId=528096 \ No newline at end of file + - http://www.microsoft.com/exporting + - http://go.microsoft.com/fwlink/?LinkId=528096 diff --git a/src/licensedcode/data/licenses/ms-net-library-2018-11.yml b/src/licensedcode/data/licenses/ms-net-library-2018-11.yml index 357d0cc7917..854489d9246 100644 --- a/src/licensedcode/data/licenses/ms-net-library-2018-11.yml +++ b/src/licensedcode/data/licenses/ms-net-library-2018-11.yml @@ -4,12 +4,11 @@ name: Microsoft .NET Library License 2018-11 category: Proprietary Free owner: Microsoft homepage_url: https://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm +notes: this is the version that existed at http://www.microsoft.com/net/dotnet_library_license.htm + from November 2018 and then at https://dotnet.microsoft.com/dotnet_library_license.htm It + also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 spdx_license_key: LicenseRef-scancode-ms-net-library-2018-11 ignorable_urls: - http://go.microsoft.com/?linkid=9840733 - http://www.microsoft.com/exporting - https://go.microsoft.com/fwlink/?LinkID=824704 -notes: this is the version that existed at http://www.microsoft.com/net/dotnet_library_license.htm - from November 2018 and then at https://dotnet.microsoft.com/dotnet_library_license.htm - It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 - \ No newline at end of file diff --git a/src/licensedcode/data/licenses/ms-net-library-2019-06.yml b/src/licensedcode/data/licenses/ms-net-library-2019-06.yml index 407266211a4..43ce97c300e 100644 --- a/src/licensedcode/data/licenses/ms-net-library-2019-06.yml +++ b/src/licensedcode/data/licenses/ms-net-library-2019-06.yml @@ -4,11 +4,11 @@ name: Microsoft .NET Library License 2019-06 category: Proprietary Free owner: Microsoft homepage_url: https://www.microsoft.com/en-us/web/webpi/eula/net_library_eula_ENU.htm +notes: this is the version that existed at https://dotnet.microsoft.com/dotnet_library_license.htm + from June 2019 and then at https://dotnet.microsoft.com/en/dotnet_library_license.htm It + also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 spdx_license_key: LicenseRef-scancode-ms-net-library-2019-06 ignorable_urls: - http://www.microsoft.com/exporting - https://docs.microsoft.com/en-us/legal/gdpr - https://go.microsoft.com/fwlink/?LinkID=824704 -notes: this is the version that existed at https://dotnet.microsoft.com/dotnet_library_license.htm - from June 2019 and then at https://dotnet.microsoft.com/en/dotnet_library_license.htm - It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 diff --git a/src/licensedcode/data/licenses/ms-net-library-2020-09.yml b/src/licensedcode/data/licenses/ms-net-library-2020-09.yml index fe8640df575..550d3143378 100644 --- a/src/licensedcode/data/licenses/ms-net-library-2020-09.yml +++ b/src/licensedcode/data/licenses/ms-net-library-2020-09.yml @@ -4,11 +4,11 @@ name: Microsoft .NET Library License 2020-09 category: Proprietary Free owner: Microsoft homepage_url: https://www.microsoft.com/web/webpi/eula/dotnet_library_license_non_redistributable.htm +notes: this is the version that existed at https://dotnet.microsoft.com/en/dotnet_library_license.htm + from September 2020 and then at https://dotnet.microsoft.com/en-us/dotnet_library_license.htm + It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 +spdx_license_key: LicenseRef-scancode-ms-net-library-2020-09 other_urls: - https://www.nuget.org/packages/Microsoft.Net.Compilers/1.0.0 -spdx_license_key: LicenseRef-scancode-ms-net-library-2020-09 ignorable_urls: - http://www.microsoft.com/exporting -notes: this is the version that existed at https://dotnet.microsoft.com/en/dotnet_library_license.htm - from September 2020 and then at https://dotnet.microsoft.com/en-us/dotnet_library_license.htm - It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 diff --git a/src/licensedcode/data/licenses/ms-net-library.yml b/src/licensedcode/data/licenses/ms-net-library.yml index 2673d543d52..80eabac18c8 100644 --- a/src/licensedcode/data/licenses/ms-net-library.yml +++ b/src/licensedcode/data/licenses/ms-net-library.yml @@ -4,9 +4,8 @@ name: Microsoft .NET Library License category: Proprietary Free owner: Microsoft homepage_url: http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm -spdx_license_key: LicenseRef-scancode-ms-net-library notes: this is the version that existed at http://www.microsoft.com/net/dotnet_library_license.htm - from late 2014 until April 2016 - It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 + from late 2014 until April 2016 It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 +spdx_license_key: LicenseRef-scancode-ms-net-library ignorable_urls: - http://www.microsoft.com/exporting diff --git a/src/licensedcode/data/licenses/msntp.yml b/src/licensedcode/data/licenses/msntp.yml index c2b1e100628..2fa9cd920fd 100644 --- a/src/licensedcode/data/licenses/msntp.yml +++ b/src/licensedcode/data/licenses/msntp.yml @@ -12,9 +12,9 @@ ignorable_copyrights: - (c) Copyright University of Cambridge - (c) Copyright, N.M. Maclaren, 1996, 1997, 2000 - (c) Copyright, University of Cambridge, 1996, 1997, 2000 -ignorable_authors: - - N.M. Maclaren - - the University of Cambridge ignorable_holders: - N.M. Maclaren - University of Cambridge +ignorable_authors: + - N.M. Maclaren + - the University of Cambridge diff --git a/src/licensedcode/data/licenses/mtll.yml b/src/licensedcode/data/licenses/mtll.yml index 0237c21394a..ce88314d28b 100644 --- a/src/licensedcode/data/licenses/mtll.yml +++ b/src/licensedcode/data/licenses/mtll.yml @@ -10,7 +10,6 @@ notes: | several ways. It is Free, but GPL-incompatible. spdx_license_key: MTLL ignorable_authors: -- at the University of Notre Dame, the Pervasive Technology Labs at Indiana University, and - Dresden University of Technology -- permission, please contact Indiana University Advanced Research & Technology - + - at the University of Notre Dame, the Pervasive Technology Labs at Indiana University, + and Dresden University of Technology + - permission, please contact Indiana University Advanced Research & Technology diff --git a/src/licensedcode/data/licenses/mulanpsl-1.0.yml b/src/licensedcode/data/licenses/mulanpsl-1.0.yml index 3d3e0be4762..28009da1357 100644 --- a/src/licensedcode/data/licenses/mulanpsl-1.0.yml +++ b/src/licensedcode/data/licenses/mulanpsl-1.0.yml @@ -1,7 +1,7 @@ key: mulanpsl-1.0 +language: zh-hans short_name: Mulan PSL v1 name: Mulan Permissive Software License, Version 1 -language: zh-hans category: Permissive owner: COSCI homepage_url: https://license.coscl.org.cn/MulanPSL/ diff --git a/src/licensedcode/data/licenses/mulanpsl-2.0.yml b/src/licensedcode/data/licenses/mulanpsl-2.0.yml index 508aca9eeef..fc4b170524e 100644 --- a/src/licensedcode/data/licenses/mulanpsl-2.0.yml +++ b/src/licensedcode/data/licenses/mulanpsl-2.0.yml @@ -1,7 +1,7 @@ key: mulanpsl-2.0 +language: zh-hans short_name: Mulan PSL v2 name: Mulan Permissive Software License, Version 2 -language: zh-hans category: Permissive owner: COSCI homepage_url: https://license.coscl.org.cn/MulanPSL2/ diff --git a/src/licensedcode/data/licenses/mx4j.yml b/src/licensedcode/data/licenses/mx4j.yml index bb7d00bcc9f..6ee5999ca98 100644 --- a/src/licensedcode/data/licenses/mx4j.yml +++ b/src/licensedcode/data/licenses/mx4j.yml @@ -8,10 +8,10 @@ other_urls: - http://mx4j.sourceforge.net ignorable_copyrights: - Copyright (c) by the MX4J contributors -ignorable_authors: - - the MX4J project (http://mx4j.sourceforge.net) ignorable_holders: - the MX4J contributors +ignorable_authors: + - the MX4J project (http://mx4j.sourceforge.net) ignorable_urls: - http://mx4j.sourceforge.net/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/nasa-1.3.yml b/src/licensedcode/data/licenses/nasa-1.3.yml index 8514771e389..804fa115f52 100644 --- a/src/licensedcode/data/licenses/nasa-1.3.yml +++ b/src/licensedcode/data/licenses/nasa-1.3.yml @@ -6,6 +6,7 @@ owner: OSI - Open Source Initiative homepage_url: http://opensource.arc.nasa.gov/static/html/NASA_Open_Source_Agreement_1.3.txt notes: Per SPDX.org, this license is OSI certified. spdx_license_key: NASA-1.3 +osi_license_key: NASA-1.3 text_urls: - http://opensource.arc.nasa.gov/static/html/NASA_Open_Source_Agreement_1.3.txt other_urls: @@ -18,4 +19,3 @@ ignorable_copyrights: - Copyright YEAR United States Government as represented by ignorable_holders: - United States Government as represented by -osi_license_key: NASA-1.3 diff --git a/src/licensedcode/data/licenses/nero-eula.yml b/src/licensedcode/data/licenses/nero-eula.yml index 3fb6681941d..10a116e4e8d 100644 --- a/src/licensedcode/data/licenses/nero-eula.yml +++ b/src/licensedcode/data/licenses/nero-eula.yml @@ -25,9 +25,6 @@ ignorable_copyrights: - copyright Robert de Bath, Joris van Rantwijk, Delian Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus Kuhn, and CORE SDI S.A. -ignorable_authors: - - Coding Technologies - - the OpenSSL Project ignorable_holders: - DTS, Inc. - Dolby Laboratories @@ -44,6 +41,9 @@ ignorable_holders: Kuhn, and CORE SDI S.A. - Simon Tatham - The OpenSSL Project +ignorable_authors: + - Coding Technologies + - the OpenSSL Project ignorable_urls: - http://ffmpeg.mplayerhq.hu/ - http://fp.gladman.plus.com/ diff --git a/src/licensedcode/data/licenses/net-snmp.yml b/src/licensedcode/data/licenses/net-snmp.yml index 44a772b409c..54d12afb0fe 100644 --- a/src/licensedcode/data/licenses/net-snmp.yml +++ b/src/licensedcode/data/licenses/net-snmp.yml @@ -9,7 +9,8 @@ spdx_license_key: Net-SNMP minimum_coverage: 70 ignorable_copyrights: - Copyright (c) 2001-2003, Networks Associates Technology, Inc - - Copyright (c) 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. + - Copyright (c) 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California + 95054, U.S.A. - Copyright (c) 2003-2006, Sparta, Inc - Copyright (c) 2004, Cisco, Inc and Information Network Center of Beijing University of Posts and Telecommunications @@ -17,8 +18,6 @@ ignorable_copyrights: - Copyright 1989, 1991, 1992 by Carnegie Mellon University - Copyright 1996, 1998-2000 The Regents of the University of California - copyright (c) 2001-2003, Cambridge Broadband Ltd. -ignorable_authors: - - Bernhard Penz ignorable_holders: - Cambridge Broadband Ltd. - Carnegie Mellon University @@ -28,6 +27,8 @@ ignorable_holders: - Sparta, Inc - Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. - The Regents of the University of California +ignorable_authors: + - Bernhard Penz ignorable_urls: - http://net-snmp.sourceforge.net/about/license.html ignorable_emails: diff --git a/src/licensedcode/data/licenses/netapp-sdk-aug2020.yml b/src/licensedcode/data/licenses/netapp-sdk-aug2020.yml index dde645b7fea..229d6893acf 100644 --- a/src/licensedcode/data/licenses/netapp-sdk-aug2020.yml +++ b/src/licensedcode/data/licenses/netapp-sdk-aug2020.yml @@ -6,5 +6,4 @@ owner: NetApp homepage_url: https://mysupport.netapp.com/documentation/productlibrary/index.html?productID=60427 spdx_license_key: LicenseRef-scancode-netapp-sdk-aug2020 ignorable_urls: - - https://mysupport.netapp.com/documentation/productlibrary/index.html?productID=60427 - + - https://mysupport.netapp.com/documentation/productlibrary/index.html?productID=60427 diff --git a/src/licensedcode/data/licenses/nicta-psl.yml b/src/licensedcode/data/licenses/nicta-psl.yml index 1cf5e22ee87..7b19ecbb98d 100644 --- a/src/licensedcode/data/licenses/nicta-psl.yml +++ b/src/licensedcode/data/licenses/nicta-psl.yml @@ -4,7 +4,9 @@ name: NICTA Public Software Licence 1.0 category: Permissive owner: NICTA homepage_url: http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-320.10/mDNSPosix/nss_ReadMe.txt -spdx_license_key: LicenseRef-scancode-nicta-psl +spdx_license_key: NICTA-1.0 +other_spdx_license_keys: + - LicenseRef-scancode-nicta-psl text_urls: - http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-320.10/mDNSPosix/nss_ReadMe.txt other_urls: diff --git a/src/licensedcode/data/licenses/no-license.yml b/src/licensedcode/data/licenses/no-license.yml index 2a7ee9f24c6..43920e893cb 100644 --- a/src/licensedcode/data/licenses/no-license.yml +++ b/src/licensedcode/data/licenses/no-license.yml @@ -3,5 +3,5 @@ short_name: No License Stated name: No License Stated category: Unstated License owner: Unspecified +notes: Scanning and analysis of a software object did not find any license information at all. spdx_license_key: LicenseRef-scancode-no-license -notes: Scanning and analysis of a software object did not find any license information at all. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/node-js.yml b/src/licensedcode/data/licenses/node-js.yml index 44d8bfeab7e..eb8747fc1eb 100644 --- a/src/licensedcode/data/licenses/node-js.yml +++ b/src/licensedcode/data/licenses/node-js.yml @@ -31,12 +31,6 @@ ignorable_copyrights: - copyrighted by Apple Computer, Inc. - copyrighted by Sun Microsystems Inc. - copyrighted by the University of Cambridge and Google, Inc. -ignorable_authors: - - Eric Young (eay@cryptsoft.com) - - Mathias Pettersson and Brian Hammond - - The Perl Foundation - - Tim Hudson (tjh@cryptsoft.com) - - the OpenSSL Project ignorable_holders: - Apple Computer, Inc. - Ben Noordhuis @@ -55,6 +49,12 @@ ignorable_holders: - the Massachusetts Institute of Technology - the University of Cambridge and Google, Inc. - the V8 project authors +ignorable_authors: + - Eric Young (eay@cryptsoft.com) + - Mathias Pettersson and Brian Hammond + - The Perl Foundation + - Tim Hudson (tjh@cryptsoft.com) + - the OpenSSL Project ignorable_urls: - http://jelloween.deviantart.com/ - http://mathiasbynens.be/ diff --git a/src/licensedcode/data/licenses/nosl-3.0.yml b/src/licensedcode/data/licenses/nosl-3.0.yml index f4ee0b6326e..1ebee9b3958 100644 --- a/src/licensedcode/data/licenses/nosl-3.0.yml +++ b/src/licensedcode/data/licenses/nosl-3.0.yml @@ -6,6 +6,7 @@ owner: OSI - Open Source Initiative homepage_url: http://www.opensource.org/licenses/NOSL3.0.html notes: Per SPDX.org, this license is OSI certified. spdx_license_key: NPOSL-3.0 +osi_license_key: NPOSL-3.0 text_urls: - http://www.opensource.org/licenses/NOSL3.0.html osi_url: http://www.opensource.org/licenses/NOSL3.0.html @@ -16,4 +17,3 @@ ignorable_copyrights: - Copyright (c) 2005 Lawrence Rosen ignorable_holders: - Lawrence Rosen -osi_license_key: NPOSL-3.0 diff --git a/src/licensedcode/data/licenses/notre-dame.yml b/src/licensedcode/data/licenses/notre-dame.yml index 6fc58d2c610..a72e7bb7494 100644 --- a/src/licensedcode/data/licenses/notre-dame.yml +++ b/src/licensedcode/data/licenses/notre-dame.yml @@ -7,7 +7,7 @@ homepage_url: https://github.com/RWTH-OS/MP-MPICH/blob/f2ae296477bb9d812fda58722 spdx_license_key: LicenseRef-scancode-notre-dame ignorable_copyrights: - Copyright 1997-2000, University of Notre Dame -ignorable_authors: - - Jeremy G. Siek, Jeffery M. Squyres, Michael P. McNally, and Andrew Lumsdaine ignorable_holders: - University of Notre Dame +ignorable_authors: + - Jeremy G. Siek, Jeffery M. Squyres, Michael P. McNally, and Andrew Lumsdaine diff --git a/src/licensedcode/data/licenses/npsl-exception-0.93.yml b/src/licensedcode/data/licenses/npsl-exception-0.93.yml index 82db1659cd3..c3aa01a5c1e 100644 --- a/src/licensedcode/data/licenses/npsl-exception-0.93.yml +++ b/src/licensedcode/data/licenses/npsl-exception-0.93.yml @@ -5,24 +5,23 @@ category: Copyleft owner: Insecure.Com homepage_url: https://svn.nmap.org/nmap/LICENSE is_exception: yes +spdx_license_key: LicenseRef-scancode-npsl-exception-0.93 faq_url: https://nmap.org/npsl/npsl-annotated.html other_urls: - https://nmap.org/book/man-legal.html - https://nmap.org/npsl/ - https://github.com/nmap/nmap/blob/master/zenmap/zenmap -spdx_license_key: LicenseRef-scancode-npsl-exception-0.93 ignorable_copyrights: - - Copyright (c) 1989, 1991 Free Software Foundation, Inc. - - copyrighted by the Free Software Foundation -ignorable_emails: - - sales@nmap.com + - Copyright (c) 1989, 1991 Free Software Foundation, Inc. + - copyrighted by the Free Software Foundation ignorable_holders: - - Free Software Foundation, Inc. - - the Free Software Foundation + - Free Software Foundation, Inc. + - the Free Software Foundation ignorable_urls: - - https://nmap.org/ - - https://nmap.org/npsl/ - - https://nmap.org/oem - - https://npcap.org/ - - https://www.gnu.org/licenses/gpl-2.0.html#SEC4 - + - https://nmap.org/ + - https://nmap.org/npsl/ + - https://nmap.org/oem + - https://npcap.org/ + - https://www.gnu.org/licenses/gpl-2.0.html#SEC4 +ignorable_emails: + - sales@nmap.com diff --git a/src/licensedcode/data/licenses/nrl.yml b/src/licensedcode/data/licenses/nrl.yml index 637239c91d9..cb53a519179 100644 --- a/src/licensedcode/data/licenses/nrl.yml +++ b/src/licensedcode/data/licenses/nrl.yml @@ -7,7 +7,7 @@ homepage_url: http://web.mit.edu/network/isakmp/nrllicense.html spdx_license_key: NRL ignorable_copyrights: - copyright by The Regents of the University of California -ignorable_authors: - - the University of California, Berkeley and its contributors ignorable_holders: - The Regents of the University of California +ignorable_authors: + - the University of California, Berkeley and its contributors diff --git a/src/licensedcode/data/licenses/nvidia-apex-sdk-eula-2011.yml b/src/licensedcode/data/licenses/nvidia-apex-sdk-eula-2011.yml index 3874947d292..b92a4feecfc 100644 --- a/src/licensedcode/data/licenses/nvidia-apex-sdk-eula-2011.yml +++ b/src/licensedcode/data/licenses/nvidia-apex-sdk-eula-2011.yml @@ -4,16 +4,15 @@ name: NVIDIA APEX SDK End User License Agreement 2011 category: Proprietary Free owner: NVIDIA homepage_url: https://developer.download.nvidia.com/assets/gamedev/docs/NVIDIA%20APEX%20EULA.pdf +spdx_license_key: LicenseRef-scancode-nvidia-apex-sdk-eula-2011 other_urls: - www.developer.nvidia.com/apex -spdx_license_key: LicenseRef-scancode-nvidia-apex-sdk-eula-2011 ignorable_copyrights: - - Copyright 2011 NVIDIA Corporation -ignorable_emails: - - PHYSXLICENCING@NVIDIA.COM - - PHYSXLICENSING@NVIDIA.COM + - Copyright 2011 NVIDIA Corporation ignorable_holders: - - NVIDIA Corporation + - NVIDIA Corporation ignorable_urls: - - http://www.developer.nvidia.com/apex - + - http://www.developer.nvidia.com/apex +ignorable_emails: + - PHYSXLICENCING@NVIDIA.COM + - PHYSXLICENSING@NVIDIA.COM diff --git a/src/licensedcode/data/licenses/nvidia-cuda-supplement-2020.yml b/src/licensedcode/data/licenses/nvidia-cuda-supplement-2020.yml index 007f8077f24..e6220a5930f 100644 --- a/src/licensedcode/data/licenses/nvidia-cuda-supplement-2020.yml +++ b/src/licensedcode/data/licenses/nvidia-cuda-supplement-2020.yml @@ -25,19 +25,6 @@ ignorable_copyrights: - Copyright (c) 2016 OpenAI (http://openai.com), 2016 Google Inc. - Copyright (c) Microsoft Corporation - Copyright 2010-2011, D. E. Shaw Research -ignorable_authors: - - Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa) David Keyes (david.keyes@kaust.edu.sa) - - Ahmad M. Abdelfattah, David Keyes, and Hatem Ltaief - - D. E. Shaw Research - - Davide Barbieri - - IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu - - Jonathan Hogg - - LLVM Team - - Li-Wen Chang - - Mutsuo Saito and Makoto Matsumoto - - Norbert Juffa - - Vasily Volkov - - the University of Tennessee ignorable_holders: - D. E. Shaw Research - Davide Barbieri University of Rome Tor Vergata @@ -56,6 +43,19 @@ ignorable_holders: - University of Illinois at Urbana-Champaign - Yann Collet - Zoltan Herczeg +ignorable_authors: + - Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa) David Keyes (david.keyes@kaust.edu.sa) + - Ahmad M. Abdelfattah, David Keyes, and Hatem Ltaief + - D. E. Shaw Research + - Davide Barbieri + - IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu + - Jonathan Hogg + - LLVM Team + - Li-Wen Chang + - Mutsuo Saito and Makoto Matsumoto + - Norbert Juffa + - Vasily Volkov + - the University of Tennessee ignorable_urls: - http://impact.crhc.illinois.edu/ - http://llvm.org/ diff --git a/src/licensedcode/data/licenses/nvidia-isaac-eula-2019.1.yml b/src/licensedcode/data/licenses/nvidia-isaac-eula-2019.1.yml index 8d376dc303a..d5e1fb9d690 100644 --- a/src/licensedcode/data/licenses/nvidia-isaac-eula-2019.1.yml +++ b/src/licensedcode/data/licenses/nvidia-isaac-eula-2019.1.yml @@ -7,5 +7,4 @@ homepage_url: https://developer.nvidia.com/isaac-sdk spdx_license_key: LicenseRef-scancode-nvidia-isaac-eula-2019.1 faq_url: https://forums.developer.nvidia.com/t/when-do-i-get-charged-for-using-isaac-in-my-business-application/121294 ignorable_urls: - - https://developer.nvidia.com/ - + - https://developer.nvidia.com/ diff --git a/src/licensedcode/data/licenses/nvidia-ngx-eula-2019.yml b/src/licensedcode/data/licenses/nvidia-ngx-eula-2019.yml index 052c85ca195..22b05ea2b55 100644 --- a/src/licensedcode/data/licenses/nvidia-ngx-eula-2019.yml +++ b/src/licensedcode/data/licenses/nvidia-ngx-eula-2019.yml @@ -6,14 +6,13 @@ owner: NVIDIA homepage_url: https://docs.nvidia.com/rtx/ngx/ngx-eula/index.html spdx_license_key: LicenseRef-scancode-nvidia-ngx-eula-2019 ignorable_copyrights: - - (c) Marketing and Promotion - - Copyright (c) 2019 NVIDIA Corporation -ignorable_emails: - - nvidia-rtx-license-questions@nvidia.com + - (c) Marketing and Promotion + - Copyright (c) 2019 NVIDIA Corporation ignorable_holders: - - Marketing and Promotion - - NVIDIA Corporation + - Marketing and Promotion + - NVIDIA Corporation ignorable_urls: - - https://developer.nvidia.com/ - - https://developer.nvidia.com/sw-notification - + - https://developer.nvidia.com/ + - https://developer.nvidia.com/sw-notification +ignorable_emails: + - nvidia-rtx-license-questions@nvidia.com diff --git a/src/licensedcode/data/licenses/oclc-2.0.yml b/src/licensedcode/data/licenses/oclc-2.0.yml index 5f107afdf7c..bbb75ba3adc 100644 --- a/src/licensedcode/data/licenses/oclc-2.0.yml +++ b/src/licensedcode/data/licenses/oclc-2.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license is OSI certified. This license was released May 2002 spdx_license_key: OCLC-2.0 +osi_license_key: OCLC-2.0 text_urls: - http://opensource.org/licenses/oclc2.php osi_url: http://opensource.org/licenses/oclc2.php @@ -25,4 +26,3 @@ ignorable_holders: ignorable_urls: - http://purl.oclc.org/oclc/research/ORPL - http://www.oclc.org/oclc/research -osi_license_key: OCLC-2.0 diff --git a/src/licensedcode/data/licenses/oculus-sdk-2020.yml b/src/licensedcode/data/licenses/oculus-sdk-2020.yml index adff2d217e6..fc095a9cad5 100644 --- a/src/licensedcode/data/licenses/oculus-sdk-2020.yml +++ b/src/licensedcode/data/licenses/oculus-sdk-2020.yml @@ -4,15 +4,14 @@ name: Oculus SDK License Agreement 2020 category: Proprietary Free owner: Facebook homepage_url: https://developer.oculus.com/licenses/oculussdk/ +spdx_license_key: LicenseRef-scancode-oculus-sdk-2020 other_urls: - https://developer.oculus.com/downloads/ -spdx_license_key: LicenseRef-scancode-oculus-sdk-2020 ignorable_copyrights: - - (c) Facebook Technologies, LLC and its affiliates - - Copyright (c) Facebook Technologies, LLC and its affiliates + - (c) Facebook Technologies, LLC and its affiliates + - Copyright (c) Facebook Technologies, LLC and its affiliates ignorable_holders: - - Facebook Technologies, LLC and its affiliates + - Facebook Technologies, LLC and its affiliates ignorable_urls: - - https://developer.oculus.com/ - - https://developer.oculus.com/licenses/oculussdk/ - + - https://developer.oculus.com/ + - https://developer.oculus.com/licenses/oculussdk/ diff --git a/src/licensedcode/data/licenses/oculus-sdk-3.5.yml b/src/licensedcode/data/licenses/oculus-sdk-3.5.yml index 9915c402b67..9f3bd097fe3 100644 --- a/src/licensedcode/data/licenses/oculus-sdk-3.5.yml +++ b/src/licensedcode/data/licenses/oculus-sdk-3.5.yml @@ -4,6 +4,7 @@ name: Oculus Software Development Kit License Agreement v3.5 category: Proprietary Free owner: Facebook homepage_url: https://developer.oculus.com/licenses/sdk-3.5/ +spdx_license_key: LicenseRef-scancode-oculus-sdk-3.5 standard_notice: | Licensed under the Oculus SDK License Version 3.5 (the "License"); you may not use the Oculus SDK except in compliance with the License, @@ -16,13 +17,11 @@ standard_notice: | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -spdx_license_key: LicenseRef-scancode-oculus-sdk-3.5 ignorable_copyrights: - - (c) Facebook Technologies, LLC and its affiliates - - Copyright (c) Facebook Technologies, LLC and its affiliates + - (c) Facebook Technologies, LLC and its affiliates + - Copyright (c) Facebook Technologies, LLC and its affiliates ignorable_holders: - - Facebook Technologies, LLC and its affiliates + - Facebook Technologies, LLC and its affiliates ignorable_urls: - - https://developer.oculus.com/ - - https://developer.oculus.com/licenses/sdk-3.5/ - + - https://developer.oculus.com/ + - https://developer.oculus.com/licenses/sdk-3.5/ diff --git a/src/licensedcode/data/licenses/ofl-1.1.yml b/src/licensedcode/data/licenses/ofl-1.1.yml index d810d2cf660..090375c5b0c 100644 --- a/src/licensedcode/data/licenses/ofl-1.1.yml +++ b/src/licensedcode/data/licenses/ofl-1.1.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was released 26 February 2007. This license is OSI certified spdx_license_key: OFL-1.1 +osi_license_key: OFL-1.1 text_urls: - http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web - https://scripts.sil.org/cms/scripts/render_download.php?format=file&media_id=OFL_plaintext&filename=OFL.txt @@ -17,5 +18,3 @@ other_urls: - http://www.opensource.org/licenses/OFL-1.1 - https://github.com/adobe-fonts/source-code-pro/blob/master/LICENSE.txt - https://opensource.org/licenses/OFL-1.1 -osi_license_key: OFL-1.1 - diff --git a/src/licensedcode/data/licenses/ogc-1.0.yml b/src/licensedcode/data/licenses/ogc-1.0.yml index 59b65be2bbc..3320ff8942c 100644 --- a/src/licensedcode/data/licenses/ogc-1.0.yml +++ b/src/licensedcode/data/licenses/ogc-1.0.yml @@ -6,9 +6,8 @@ owner: Open Geospatial Consortium homepage_url: https://www.ogc.org/ogc/software/1.0 spdx_license_key: OGC-1.0 ignorable_copyrights: - - Copyright (c) Open Geospatial Consortium, Inc. + - Copyright (c) Open Geospatial Consortium, Inc. ignorable_holders: - - Open Geospatial Consortium, Inc. + - Open Geospatial Consortium, Inc. ignorable_urls: - - http://www.ogc.org/ogc/legal - + - http://www.ogc.org/ogc/legal diff --git a/src/licensedcode/data/licenses/opengroup.yml b/src/licensedcode/data/licenses/opengroup.yml index b3971b5e779..426153dfc23 100644 --- a/src/licensedcode/data/licenses/opengroup.yml +++ b/src/licensedcode/data/licenses/opengroup.yml @@ -6,6 +6,7 @@ owner: Open Group homepage_url: http://opensource.org/licenses/opengroup.php notes: Per SPDX.org, this license is OSI certified. spdx_license_key: OGTSL +osi_license_key: OGTSL text_urls: - http://opensource.org/licenses/opengroup.php osi_url: http://opensource.org/licenses/opengroup.php @@ -13,4 +14,3 @@ other_urls: - http://www.opengroup.org/testing/downloads/The_Open_Group_TSL.txt - http://www.opensource.org/licenses/OGTSL - https://opensource.org/licenses/OGTSL -osi_license_key: OGTSL diff --git a/src/licensedcode/data/licenses/openldap-1.1.yml b/src/licensedcode/data/licenses/openldap-1.1.yml index f6c0cbd6529..57068a0c0d7 100644 --- a/src/licensedcode/data/licenses/openldap-1.1.yml +++ b/src/licensedcode/data/licenses/openldap-1.1.yml @@ -8,8 +8,8 @@ notes: Per SPDX.org, this license was released 25 August 1998. spdx_license_key: OLDAP-1.1 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=806557a5ad59804ef3a44d5abfbe91d706b0791f +minimum_coverage: 70 ignorable_copyrights: - Copyright 1998, The OpenLDAP Foundation ignorable_holders: - The OpenLDAP Foundation -minimum_coverage: 70 \ No newline at end of file diff --git a/src/licensedcode/data/licenses/openldap-1.2.yml b/src/licensedcode/data/licenses/openldap-1.2.yml index b1155269b7a..b43c52b9223 100644 --- a/src/licensedcode/data/licenses/openldap-1.2.yml +++ b/src/licensedcode/data/licenses/openldap-1.2.yml @@ -10,8 +10,8 @@ notes: | spdx_license_key: OLDAP-1.2 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=42b0383c50c299977b5893ee695cf4e486fb0dc7 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1998, The OpenLDAP Foundation ignorable_holders: - The OpenLDAP Foundation -minimum_coverage: 70 \ No newline at end of file diff --git a/src/licensedcode/data/licenses/openldap-1.3.yml b/src/licensedcode/data/licenses/openldap-1.3.yml index 7e96971c6f0..325ae4902a7 100644 --- a/src/licensedcode/data/licenses/openldap-1.3.yml +++ b/src/licensedcode/data/licenses/openldap-1.3.yml @@ -11,8 +11,8 @@ notes: | spdx_license_key: OLDAP-1.3 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=e5f8117f0ce088d0bd7a8e18ddf37eaa40eb09b1 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1998-1999, The OpenLDAP Foundation ignorable_holders: - The OpenLDAP Foundation -minimum_coverage: 70 \ No newline at end of file diff --git a/src/licensedcode/data/licenses/openldap-1.4.yml b/src/licensedcode/data/licenses/openldap-1.4.yml index ee8904cdefb..0bd4f04fd1d 100644 --- a/src/licensedcode/data/licenses/openldap-1.4.yml +++ b/src/licensedcode/data/licenses/openldap-1.4.yml @@ -8,8 +8,8 @@ notes: Per SPDX.org, this license was released 18 January 1999. spdx_license_key: OLDAP-1.4 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=c9f95c2f3f2ffb5e0ae55fe7388af75547660941 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1998-1999, The OpenLDAP Foundation ignorable_holders: - The OpenLDAP Foundation -minimum_coverage: 70 \ No newline at end of file diff --git a/src/licensedcode/data/licenses/openldap-2.0.1.yml b/src/licensedcode/data/licenses/openldap-2.0.1.yml index 21f854a4a97..b924b819a0f 100644 --- a/src/licensedcode/data/licenses/openldap-2.0.1.yml +++ b/src/licensedcode/data/licenses/openldap-2.0.1.yml @@ -11,6 +11,7 @@ notes: | spdx_license_key: OLDAP-2.0.1 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b6d68acd14e51ca3aab4428bf26522aa74873f0e +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999, The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: @@ -19,4 +20,3 @@ ignorable_urls: - http://www.openldap.org/ ignorable_emails: - foundation@openldap.org -minimum_coverage: 70 \ No newline at end of file diff --git a/src/licensedcode/data/licenses/openldap-2.0.yml b/src/licensedcode/data/licenses/openldap-2.0.yml index d91d6649514..5eaa20064e6 100644 --- a/src/licensedcode/data/licenses/openldap-2.0.yml +++ b/src/licensedcode/data/licenses/openldap-2.0.yml @@ -8,6 +8,7 @@ notes: Per SPDX.org, this license was released 7 June 1999. spdx_license_key: OLDAP-2.0 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cbf50f4e1185a21abd4c0a54d3f4341fe28f36ea +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999, The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: @@ -16,4 +17,3 @@ ignorable_urls: - http://www.openldap.org/ ignorable_emails: - foundation@openldap.org -minimum_coverage: 70 \ No newline at end of file diff --git a/src/licensedcode/data/licenses/openldap-2.1.yml b/src/licensedcode/data/licenses/openldap-2.1.yml index ec61a629921..029a27948fb 100644 --- a/src/licensedcode/data/licenses/openldap-2.1.yml +++ b/src/licensedcode/data/licenses/openldap-2.1.yml @@ -8,6 +8,7 @@ notes: Per SPDX.org, this license was released 29 February 2000. spdx_license_key: OLDAP-2.1 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b0d176738e96a0d3b9f85cb51e140a86f21be715 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2000, The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: @@ -16,4 +17,3 @@ ignorable_urls: - http://www.openldap.org/ ignorable_emails: - foundation@openldap.org -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.2.1.yml b/src/licensedcode/data/licenses/openldap-2.2.1.yml index 9852f2dd0aa..8d9d6a862e0 100644 --- a/src/licensedcode/data/licenses/openldap-2.2.1.yml +++ b/src/licensedcode/data/licenses/openldap-2.2.1.yml @@ -8,10 +8,10 @@ notes: Per SPDX.org, this license was released 1 March 2000. spdx_license_key: OLDAP-2.2.1 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=4bc786f34b50aa301be6f5600f58a980070f481e +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2000 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. ignorable_urls: - http://www.openldap.org/ -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.2.2.yml b/src/licensedcode/data/licenses/openldap-2.2.2.yml index 67a6be373bc..7efdd7ab39f 100644 --- a/src/licensedcode/data/licenses/openldap-2.2.2.yml +++ b/src/licensedcode/data/licenses/openldap-2.2.2.yml @@ -8,10 +8,10 @@ notes: Per SPDX.org, this license was released 28 July 2000. spdx_license_key: OLDAP-2.2.2 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=df2cc1e21eb7c160695f5b7cffd6296c151ba188 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2000 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. ignorable_urls: - http://www.openldap.org/ -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.2.yml b/src/licensedcode/data/licenses/openldap-2.2.yml index 71b401f9ac0..61cf7fb97ed 100644 --- a/src/licensedcode/data/licenses/openldap-2.2.yml +++ b/src/licensedcode/data/licenses/openldap-2.2.yml @@ -8,10 +8,10 @@ notes: Per SPDX.org, this license was released 1 March 2000. spdx_license_key: OLDAP-2.2 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=470b0c18ec67621c85881b2733057fecf4a1acc3 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2000, The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. ignorable_urls: - http://www.openldap.org/ -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.3.yml b/src/licensedcode/data/licenses/openldap-2.3.yml index 36fd1e15c3b..281afe4ac59 100644 --- a/src/licensedcode/data/licenses/openldap-2.3.yml +++ b/src/licensedcode/data/licenses/openldap-2.3.yml @@ -8,10 +8,10 @@ notes: Per SPDX.org, this license was released 28 July 2000. spdx_license_key: OLDAP-2.3 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=d32cf54a32d581ab475d23c810b0a7fbaf8d63c3 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2000 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. ignorable_urls: - http://www.openldap.org/ -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.4.yml b/src/licensedcode/data/licenses/openldap-2.4.yml index 736e9182b96..ccd43ac27b7 100644 --- a/src/licensedcode/data/licenses/openldap-2.4.yml +++ b/src/licensedcode/data/licenses/openldap-2.4.yml @@ -8,8 +8,8 @@ notes: Per SPDX.org, this license was released 8 December 2000. spdx_license_key: OLDAP-2.4 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cd1284c4a91a8a380d904eee68d1583f989ed386 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2000 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.5.yml b/src/licensedcode/data/licenses/openldap-2.5.yml index 0d102423298..ec419033634 100644 --- a/src/licensedcode/data/licenses/openldap-2.5.yml +++ b/src/licensedcode/data/licenses/openldap-2.5.yml @@ -8,8 +8,8 @@ notes: Per SPDX.org, this license was released 11 May 2001. spdx_license_key: OLDAP-2.5 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=6852b9d90022e8593c98205413380536b1b5a7cf +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2001 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.6.yml b/src/licensedcode/data/licenses/openldap-2.6.yml index aac070a36f5..20f6d62054f 100644 --- a/src/licensedcode/data/licenses/openldap-2.6.yml +++ b/src/licensedcode/data/licenses/openldap-2.6.yml @@ -8,8 +8,8 @@ notes: Per SPDX.org, this license was released 14 June 2001. spdx_license_key: OLDAP-2.6 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=1cae062821881f41b73012ba816434897abf4205 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2001 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.7.yml b/src/licensedcode/data/licenses/openldap-2.7.yml index 1d1d64a5627..20a5179c28f 100644 --- a/src/licensedcode/data/licenses/openldap-2.7.yml +++ b/src/licensedcode/data/licenses/openldap-2.7.yml @@ -8,8 +8,8 @@ notes: Per SPDX.org, this license was released 7 September 2001. spdx_license_key: OLDAP-2.7 text_urls: - http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=47c2415c1df81556eeb39be6cad458ef87c534a2 +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2001 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openldap-2.8.yml b/src/licensedcode/data/licenses/openldap-2.8.yml index 1ce7feb6a87..31f8a07ef0b 100644 --- a/src/licensedcode/data/licenses/openldap-2.8.yml +++ b/src/licensedcode/data/licenses/openldap-2.8.yml @@ -7,8 +7,8 @@ homepage_url: http://www.openldap.org/software/release/license.html spdx_license_key: OLDAP-2.8 text_urls: - http://www.openldap.org/software/release/license.html +minimum_coverage: 70 ignorable_copyrights: - Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, California, USA. ignorable_holders: - The OpenLDAP Foundation, Redwood City, California, USA. -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/openorb-1.0.yml b/src/licensedcode/data/licenses/openorb-1.0.yml index 6c46eeeed9d..46ce49899a4 100644 --- a/src/licensedcode/data/licenses/openorb-1.0.yml +++ b/src/licensedcode/data/licenses/openorb-1.0.yml @@ -9,10 +9,10 @@ text_urls: - http://openorb.sourceforge.net/license.txt ignorable_copyrights: - Copyright (c) 2002 The OpenORB Project -ignorable_authors: - - the OpenORB Community Project (http://sourceforge.net/projects/openorb/) ignorable_holders: - The OpenORB Project +ignorable_authors: + - the OpenORB Community Project (http://sourceforge.net/projects/openorb/) ignorable_urls: - http://sourceforge.net/projects/openorb - http://sourceforge.net/projects/openorb/ diff --git a/src/licensedcode/data/licenses/openpbs-2.3.yml b/src/licensedcode/data/licenses/openpbs-2.3.yml index 8824f646a2b..f738f14ef28 100644 --- a/src/licensedcode/data/licenses/openpbs-2.3.yml +++ b/src/licensedcode/data/licenses/openpbs-2.3.yml @@ -11,11 +11,11 @@ other_urls: - www.OpenPBS.org ignorable_copyrights: - Copyright (c) 1999-2000 Veridian Information Solutions, Inc. +ignorable_holders: + - Veridian Information Solutions, Inc. ignorable_authors: - NASA Ames Research Center, Lawrence Livermore National Laboratory, and Veridian Information Solutions, Inc. -ignorable_holders: - - Veridian Information Solutions, Inc. ignorable_urls: - http://www.openpbs.org/ - http://www.openpbs.org/credit.html diff --git a/src/licensedcode/data/licenses/opensaml-1.0.yml b/src/licensedcode/data/licenses/opensaml-1.0.yml index 8563a010612..9bd17329e5d 100644 --- a/src/licensedcode/data/licenses/opensaml-1.0.yml +++ b/src/licensedcode/data/licenses/opensaml-1.0.yml @@ -8,10 +8,10 @@ other_urls: - https://wiki.shibboleth.net/confluence/display/OpenSAML/Home ignorable_copyrights: - Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc. -ignorable_authors: - - the University Corporation ignorable_holders: - University Corporation for Advanced Internet Development, Inc. +ignorable_authors: + - the University Corporation ignorable_urls: - http://www.ucaid.edu/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/openssh.yml b/src/licensedcode/data/licenses/openssh.yml index 4d29f80ba46..c5c4894cbc6 100644 --- a/src/licensedcode/data/licenses/openssh.yml +++ b/src/licensedcode/data/licenses/openssh.yml @@ -5,10 +5,10 @@ category: Permissive owner: OpenBSD Project homepage_url: https://github.com/openssh/openssh-portable/blob/V_7_3_P1/LICENCE notes: composite +spdx_license_key: SSH-OpenSSH other_urls: - http://www.openssh.org/ - https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10 -spdx_license_key: SSH-OpenSSH minimum_coverage: 80 ignorable_copyrights: - Copyright (c) 1983, 1990, 1992, 1993, 1995 The Regents of the University of California @@ -16,17 +16,17 @@ ignorable_copyrights: - Copyright (c) 1998 CORE SDI - Copyright 1995, 1996 by David Mazieres - Copyright Patrick Powell 1995 -ignorable_authors: - - Antoon Bosselaers - - Patrick Powell (papowell@astart.com) - - Paulo Barreto - - Vincent Rijmen ignorable_holders: - CORE SDI - David Mazieres - Patrick Powell - Tatu Ylonen , Espoo, Finland - The Regents of the University of California +ignorable_authors: + - Antoon Bosselaers + - Patrick Powell (papowell@astart.com) + - Paulo Barreto + - Vincent Rijmen ignorable_urls: - http://www.core-sdi.com/ - http://www.cs.hut.fi/crypto diff --git a/src/licensedcode/data/licenses/openssl-ssleay.yml b/src/licensedcode/data/licenses/openssl-ssleay.yml index ba44ac62794..c00240c92a6 100644 --- a/src/licensedcode/data/licenses/openssl-ssleay.yml +++ b/src/licensedcode/data/licenses/openssl-ssleay.yml @@ -17,13 +17,13 @@ minimum_coverage: 70 ignorable_copyrights: - Copyright (c) 1995-1998 Eric Young (eay@cryptsoft.com) - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_holders: + - Eric Young + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) - the OpenSSL Project -ignorable_holders: - - Eric Young - - Tim Hudson ignorable_urls: - http://www.openssl.org/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/openssl.yml b/src/licensedcode/data/licenses/openssl.yml index 11dbf0833c9..6c890354f31 100644 --- a/src/licensedcode/data/licenses/openssl.yml +++ b/src/licensedcode/data/licenses/openssl.yml @@ -12,10 +12,10 @@ spdx_license_key: LicenseRef-scancode-openssl faq_url: http://www.openssl.org/support/faq.html other_urls: - http://www.openssl.org/source/license.html +minimum_coverage: 70 ignorable_authors: - the OpenSSL Project ignorable_urls: - http://www.openssl.org/ ignorable_emails: - licensing@OpenSSL.org -minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/opnl-2.0.yml b/src/licensedcode/data/licenses/opnl-2.0.yml index 3fd037fa5cd..1d30f30b13f 100644 --- a/src/licensedcode/data/licenses/opnl-2.0.yml +++ b/src/licensedcode/data/licenses/opnl-2.0.yml @@ -3,14 +3,13 @@ short_name: OPNL-2.0 name: Open Innovation License version 2.0 category: Permissive owner: Stark Drones Corporation -spdx_license_key: LicenseRef-scancode-opnl-2.0 homepage_url: https://github.com/StarkDrones/OPNL -other_urls: - - https://github.com/StarkDrones/OPNLv2 +spdx_license_key: LicenseRef-scancode-opnl-2.0 +other_urls: + - https://github.com/StarkDrones/OPNLv2 ignorable_copyrights: - Copyright (c) 2020 Andrew Magdy Kamal - Copyright (c) 2020 Stark Drones Corporation ignorable_holders: - Andrew Magdy Kamal - Stark Drones Corporation - \ No newline at end of file diff --git a/src/licensedcode/data/licenses/osl-1.0.yml b/src/licensedcode/data/licenses/osl-1.0.yml index 315f2dbdb82..e4b6388f50d 100644 --- a/src/licensedcode/data/licenses/osl-1.0.yml +++ b/src/licensedcode/data/licenses/osl-1.0.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was OSI certified. This license has been superseded. spdx_license_key: OSL-1.0 +osi_license_key: OSL-1.0 text_urls: - http://www.opensource.org/licenses/osl-1.0.txt osi_url: http://www.opensource.org/licenses/osl-1.0.txt @@ -19,4 +20,3 @@ ignorable_copyrights: - Copyright (c) 2002 Lawrence E. Rosen ignorable_holders: - Lawrence E. Rosen -osi_license_key: OSL-1.0 diff --git a/src/licensedcode/data/licenses/osl-2.1.yml b/src/licensedcode/data/licenses/osl-2.1.yml index ba2765b8db8..c0a59df0a66 100644 --- a/src/licensedcode/data/licenses/osl-2.1.yml +++ b/src/licensedcode/data/licenses/osl-2.1.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, same as version 2.0 of this license except with changes to section 10 spdx_license_key: OSL-2.1 +osi_license_key: OSL-2.1 text_urls: - http://web.archive.org/web/20050212003940/http://www.rosenlaw.com/osl21.htm osi_url: http://www.opensource.org/licenses/osl-2.1.php @@ -20,4 +21,3 @@ ignorable_copyrights: - Copyright (c) 2003-2004 Lawrence E. Rosen ignorable_holders: - Lawrence E. Rosen -osi_license_key: OSL-2.1 diff --git a/src/licensedcode/data/licenses/osl-3.0.yml b/src/licensedcode/data/licenses/osl-3.0.yml index 728468a2276..2572505fee7 100644 --- a/src/licensedcode/data/licenses/osl-3.0.yml +++ b/src/licensedcode/data/licenses/osl-3.0.yml @@ -6,6 +6,7 @@ owner: Lawrence Rosen homepage_url: http://www.opensource.org/licenses/osl-3.0.php notes: Per SPDX.org, this license is OSI certified. spdx_license_key: OSL-3.0 +osi_license_key: OSL-3.0 text_urls: - http://www.opensource.org/licenses/osl-3.0.php osi_url: http://opensource.org/licenses/osl-3.0.php @@ -19,4 +20,3 @@ ignorable_copyrights: - Copyright (c) 2005 Lawrence Rosen ignorable_holders: - Lawrence Rosen -osi_license_key: OSL-3.0 diff --git a/src/licensedcode/data/licenses/owtchart.yml b/src/licensedcode/data/licenses/owtchart.yml index 094dc0932fb..8985823c87c 100644 --- a/src/licensedcode/data/licenses/owtchart.yml +++ b/src/licensedcode/data/licenses/owtchart.yml @@ -12,14 +12,14 @@ ignorable_copyrights: - Portions copyright 1996, 1997, 1998, by Boutell.Com, Inc. - copyright 1990, 1991, 1993, by David Koblas (koblas@netcom.com) - copyright 1998, by Hutchison Avenue Software Corporation -ignorable_authors: - - Daniel Morissette (danmo@videotron.ca) ignorable_holders: - Boutell.Com, Inc. - Cold Spring Harbor Laboratory - Daniel Morissette - David Koblas - Hutchison Avenue Software Corporation +ignorable_authors: + - Daniel Morissette (danmo@videotron.ca) ignorable_emails: - brv@fred.net - danmo@videotron.ca diff --git a/src/licensedcode/data/licenses/ozplb-1.0.yml b/src/licensedcode/data/licenses/ozplb-1.0.yml index ffd91bb4db2..f7ff5b10959 100644 --- a/src/licensedcode/data/licenses/ozplb-1.0.yml +++ b/src/licensedcode/data/licenses/ozplb-1.0.yml @@ -11,9 +11,9 @@ other_urls: - http://www.ertos.nicta.com.au ignorable_copyrights: - Copyright (c) 2006, National ICT Australia, Ltd -ignorable_authors: - - Embedded, Real-time and Operating Systems Program (ERTOS) National ICT Australia http://www.ertos.nicta.com.au ignorable_holders: - National ICT Australia, Ltd +ignorable_authors: + - Embedded, Real-time and Operating Systems Program (ERTOS) National ICT Australia http://www.ertos.nicta.com.au ignorable_urls: - http://www.ertos.nicta.com.au/ diff --git a/src/licensedcode/data/licenses/ozplb-1.1.yml b/src/licensedcode/data/licenses/ozplb-1.1.yml index 1f6880b168d..743d69f0054 100644 --- a/src/licensedcode/data/licenses/ozplb-1.1.yml +++ b/src/licensedcode/data/licenses/ozplb-1.1.yml @@ -9,10 +9,10 @@ text_urls: - http://p2p.cs.mu.oz.au/software/mpi-open/src/LICENSE ignorable_copyrights: - Copyright (c) 2006, P2P Networks and Applications Research Group, The University of Melbourne -ignorable_authors: - - P2P Networks and Applications Research Group The University of Melbourne, Australia http://www.cs.mu.oz.au/p2p ignorable_holders: - P2P Networks and Applications Research Group, The University of Melbourne +ignorable_authors: + - P2P Networks and Applications Research Group The University of Melbourne, Australia http://www.cs.mu.oz.au/p2p ignorable_urls: - http://www.cs.mu.oz.au/p2p - http://www.opensource.org/licenses/UoI-NCSA.php diff --git a/src/licensedcode/data/licenses/paraview-1.2.yml b/src/licensedcode/data/licenses/paraview-1.2.yml index de53d0abf81..b6e09918a0f 100644 --- a/src/licensedcode/data/licenses/paraview-1.2.yml +++ b/src/licensedcode/data/licenses/paraview-1.2.yml @@ -15,12 +15,12 @@ ignorable_copyrights: - Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc. - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 by the Board of Trustees of the University of Illinois -ignorable_authors: - - the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign - - with support from the University of California, Lawrence Livermore National Laboratory ignorable_holders: - Kitware Inc. 28 Corporate Drive, Suite 204, Clifton Park, NY, 12065, USA. - Los Alamos National Laboratory - Sandia Corporation, Kitware Inc. - U.S. Army Research Laboratory - the Board of Trustees of the University of Illinois +ignorable_authors: + - the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign + - with support from the University of California, Lawrence Livermore National Laboratory diff --git a/src/licensedcode/data/licenses/paypal-sdk-2013-2016.yml b/src/licensedcode/data/licenses/paypal-sdk-2013-2016.yml index 303f5e08e1c..d8d6cccb593 100644 --- a/src/licensedcode/data/licenses/paypal-sdk-2013-2016.yml +++ b/src/licensedcode/data/licenses/paypal-sdk-2013-2016.yml @@ -10,7 +10,6 @@ standard_notice: | Copyright (c) 2013-2016 PAYPAL, INC. SDK LICENSE ignorable_copyrights: - - Copyright (c) 2013-2016 PAYPAL, INC. + - Copyright (c) 2013-2016 PAYPAL, INC. ignorable_holders: - - PAYPAL, INC. - + - PAYPAL, INC. diff --git a/src/licensedcode/data/licenses/pcre.yml b/src/licensedcode/data/licenses/pcre.yml index 0d478d34631..47d0246fe1f 100644 --- a/src/licensedcode/data/licenses/pcre.yml +++ b/src/licensedcode/data/licenses/pcre.yml @@ -10,11 +10,11 @@ text_urls: ignorable_copyrights: - Copyright (c) 1997-2001 University of Cambridge - copyright by the University of Cambridge, England -ignorable_authors: - - Philip Hazel ignorable_holders: - University of Cambridge - the University of Cambridge, England +ignorable_authors: + - Philip Hazel ignorable_urls: - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/phorum-2.0.yml b/src/licensedcode/data/licenses/phorum-2.0.yml index d2c1da8e742..f0b64f9a151 100644 --- a/src/licensedcode/data/licenses/phorum-2.0.yml +++ b/src/licensedcode/data/licenses/phorum-2.0.yml @@ -9,18 +9,17 @@ text_urls: - http://www.phorum.org/license.txt other_urls: - http://phorum.org/ +minimum_coverage: 80 ignorable_copyrights: - Copyright (c) 2001 The Phorum Development Team - copyright (c) 2000 The Apache Software Foundation -ignorable_authors: - - the Phorum Development Team (http://phorum.org/) ignorable_holders: - The Apache Software Foundation - The Phorum Development Team +ignorable_authors: + - the Phorum Development Team (http://phorum.org/) ignorable_urls: - http://phorum.org/ - http://www.apache.org/ ignorable_emails: - core@phorum.org -minimum_coverage: 80 - diff --git a/src/licensedcode/data/licenses/proprietary-license.yml b/src/licensedcode/data/licenses/proprietary-license.yml index d81321848e3..ee276a31166 100644 --- a/src/licensedcode/data/licenses/proprietary-license.yml +++ b/src/licensedcode/data/licenses/proprietary-license.yml @@ -3,12 +3,11 @@ short_name: Proprietary License name: Proprietary License category: Commercial owner: Unspecified +notes: replaces the proprietary key npm before 3.1 recommended this "If you are using a license + that hasn't been assigned an SPDX identifier, or if you are using a custom license, use + the following valid SPDX expression "LicenseRef-LICENSE" is_generic: yes spdx_license_key: LicenseRef-scancode-proprietary-license other_spdx_license_keys: - LicenseRef-LICENSE - LicenseRef-LICENSE.md -notes: replaces the proprietary key - npm before 3.1 recommended this "If you are using a license that hasn't been assigned an - SPDX identifier, or if you are using a custom license, use the following valid - SPDX expression "LicenseRef-LICENSE" diff --git a/src/licensedcode/data/licenses/psf-2.0.yml b/src/licensedcode/data/licenses/psf-2.0.yml index 20ecce2f827..92a1340591a 100644 --- a/src/licensedcode/data/licenses/psf-2.0.yml +++ b/src/licensedcode/data/licenses/psf-2.0.yml @@ -6,7 +6,6 @@ owner: Python Software Foundation (PSF) homepage_url: https://opensource.org/licenses/Python-2.0 spdx_license_key: PSF-2.0 ignorable_copyrights: - - Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation + - Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation ignorable_holders: - - Python Software Foundation - + - Python Software Foundation diff --git a/src/licensedcode/data/licenses/public-domain-disclaimer.yml b/src/licensedcode/data/licenses/public-domain-disclaimer.yml index d71deacfb82..531b1376a9c 100644 --- a/src/licensedcode/data/licenses/public-domain-disclaimer.yml +++ b/src/licensedcode/data/licenses/public-domain-disclaimer.yml @@ -3,8 +3,7 @@ short_name: Public Domain Disclaimer name: Public Domain Disclaimer category: Public Domain owner: Unspecified -spdx_license_key: LicenseRef-scancode-public-domain-disclaimer -notes: this is used also as a placeholder for similar public domain dedications - texts and notices that come with an additional warranty disclaimer +notes: this is used also as a placeholder for similar public domain dedications texts and notices + that come with an additional warranty disclaimer is_generic: yes - \ No newline at end of file +spdx_license_key: LicenseRef-scancode-public-domain-disclaimer diff --git a/src/licensedcode/data/licenses/public-domain.yml b/src/licensedcode/data/licenses/public-domain.yml index ec37ed8e4be..c74d611d115 100644 --- a/src/licensedcode/data/licenses/public-domain.yml +++ b/src/licensedcode/data/licenses/public-domain.yml @@ -4,10 +4,10 @@ name: Public Domain category: Public Domain owner: Unspecified homepage_url: http://www.linfo.org/publicdomain.html +is_generic: yes spdx_license_key: LicenseRef-scancode-public-domain other_spdx_license_keys: - LicenseRef-PublicDomain -is_generic: yes faq_url: http://www.linfo.org/publicdomain.html other_urls: - http://creativecommons.org/licenses/publicdomain/ diff --git a/src/licensedcode/data/licenses/purdue-bsd.yml b/src/licensedcode/data/licenses/purdue-bsd.yml index 7d7172b6311..69d385e0572 100644 --- a/src/licensedcode/data/licenses/purdue-bsd.yml +++ b/src/licensedcode/data/licenses/purdue-bsd.yml @@ -3,6 +3,6 @@ short_name: Purdue BSD-Style License name: Purdue BSD-Style License category: Permissive owner: Purdue Research Foundation -spdx_license_key: LicenseRef-scancode-purdue-bsd notes: this is very similar to the hs-regexp license +spdx_license_key: LicenseRef-scancode-purdue-bsd minimum_coverage: 70 diff --git a/src/licensedcode/data/licenses/qhull.yml b/src/licensedcode/data/licenses/qhull.yml index 455833fb388..62e0c0b3bc7 100644 --- a/src/licensedcode/data/licenses/qhull.yml +++ b/src/licensedcode/data/licenses/qhull.yml @@ -8,11 +8,12 @@ spdx_license_key: Qhull other_urls: - https://fedoraproject.org/wiki/Licensing/Qhull ignorable_copyrights: - - Qhull, Copyright (c) 1993-2003 The National Science and Technology Research Center for Computation - and Visualization of Geometric Structures (The Geometry Center) University of Minnesota + - Qhull, Copyright (c) 1993-2003 The National Science and Technology Research Center for + Computation and Visualization of Geometric Structures (The Geometry Center) University + of Minnesota ignorable_holders: - Qhull, The National Science and Technology Research Center for Computation and Visualization - of Geometric Structures (The Geometry Center) University of Minnesota + of Geometric Structures (The Geometry Center) University of Minnesota ignorable_urls: - http://www.qhull.org/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/qpopper.yml b/src/licensedcode/data/licenses/qpopper.yml index c6b8289c03f..7d747ab4e68 100644 --- a/src/licensedcode/data/licenses/qpopper.yml +++ b/src/licensedcode/data/licenses/qpopper.yml @@ -10,8 +10,8 @@ text_urls: ignorable_copyrights: - (c) Copyright 1989-1991 The Regents of the University of California - Copyright 1993-2006 QUALCOMM Incorporated -ignorable_authors: - - Austin Shelton ignorable_holders: - QUALCOMM Incorporated - The Regents of the University of California +ignorable_authors: + - Austin Shelton diff --git a/src/licensedcode/data/licenses/qualcomm-iso.yml b/src/licensedcode/data/licenses/qualcomm-iso.yml index 4a1be93195d..26ce07aecbb 100644 --- a/src/licensedcode/data/licenses/qualcomm-iso.yml +++ b/src/licensedcode/data/licenses/qualcomm-iso.yml @@ -8,7 +8,7 @@ other_urls: - https://www.iso.org/standard/65274.html ignorable_copyrights: - Copyright (c) ISO/IEC 2010 -ignorable_authors: - - Qualcomm, Inc. ignorable_holders: - ISO/IEC +ignorable_authors: + - Qualcomm, Inc. diff --git a/src/licensedcode/data/licenses/realm-platform-extension-2017.yml b/src/licensedcode/data/licenses/realm-platform-extension-2017.yml index 79701e75b74..db24709bb49 100644 --- a/src/licensedcode/data/licenses/realm-platform-extension-2017.yml +++ b/src/licensedcode/data/licenses/realm-platform-extension-2017.yml @@ -4,12 +4,11 @@ name: Realm Platform Extensions License 2017 category: Proprietary Free owner: Realm homepage_url: https://github.com/realm/realm-studio/blob/channel/major-10/LICENSE -faq_url: http://realm.io/pricing/ spdx_license_key: LicenseRef-scancode-realm-platform-extension-2017 +faq_url: http://realm.io/pricing/ ignorable_copyrights: - - Copyright (c) 2011-2017 Realm Inc + - Copyright (c) 2011-2017 Realm Inc ignorable_holders: - - Realm Inc + - Realm Inc ignorable_urls: - - http://realm.io/pricing - + - http://realm.io/pricing diff --git a/src/licensedcode/data/licenses/regexp.yml b/src/licensedcode/data/licenses/regexp.yml index 95f0e7abbb7..3aa8315f2c5 100644 --- a/src/licensedcode/data/licenses/regexp.yml +++ b/src/licensedcode/data/licenses/regexp.yml @@ -4,7 +4,7 @@ name: Regexp License category: Permissive owner: Henry Spencer homepage_url: https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License +spdx_license_key: Spencer-86 other_spdx_license_keys: - LicenseRef-scancode-regexp -spdx_license_key: Spencer-86 minimum_coverage: 80 diff --git a/src/licensedcode/data/licenses/repoze.yml b/src/licensedcode/data/licenses/repoze.yml index e25236c4387..02b8b20d03d 100644 --- a/src/licensedcode/data/licenses/repoze.yml +++ b/src/licensedcode/data/licenses/repoze.yml @@ -13,5 +13,3 @@ text_urls: - http://repoze.org/license.html other_urls: - https://fedoraproject.org/wiki/Licensing:BSD#Modification_Variant - - \ No newline at end of file diff --git a/src/licensedcode/data/licenses/rpl-1.1.yml b/src/licensedcode/data/licenses/rpl-1.1.yml index e41bcba50c2..051a792ac46 100644 --- a/src/licensedcode/data/licenses/rpl-1.1.yml +++ b/src/licensedcode/data/licenses/rpl-1.1.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license has been superseded by the Reciprocal Public License, version 1.5 spdx_license_key: RPL-1.1 +osi_license_key: RPL-1.1 text_urls: - http://opensource.org/licenses/RPL-1.1 osi_url: http://opensource.org/licenses/RPL-1.1 @@ -21,4 +22,3 @@ ignorable_holders: - Technical Pursuit Inc. ignorable_urls: - http://www.technicalpursuit.com/ -osi_license_key: RPL-1.1 diff --git a/src/licensedcode/data/licenses/rpl-1.5.yml b/src/licensedcode/data/licenses/rpl-1.5.yml index 95331468622..69360257f69 100644 --- a/src/licensedcode/data/licenses/rpl-1.5.yml +++ b/src/licensedcode/data/licenses/rpl-1.5.yml @@ -8,6 +8,7 @@ notes: | Per SPDX.org, this license was released 15 July 2007 This license is OSI certified. spdx_license_key: RPL-1.5 +osi_license_key: RPL-1.5 text_urls: - http://www.opensource.org/licenses/rpl1.5.txt osi_url: http://www.opensource.org/licenses/rpl1.5.txt @@ -19,4 +20,3 @@ ignorable_copyrights: - Copyright (c) 2001-2007 Technical Pursuit Inc. ignorable_holders: - Technical Pursuit Inc. -osi_license_key: RPL-1.5 diff --git a/src/licensedcode/data/licenses/rpsl-1.0.yml b/src/licensedcode/data/licenses/rpsl-1.0.yml index 02d728088c7..8aa918fa986 100644 --- a/src/licensedcode/data/licenses/rpsl-1.0.yml +++ b/src/licensedcode/data/licenses/rpsl-1.0.yml @@ -6,6 +6,7 @@ owner: RealNetworks homepage_url: http://opensource.org/licenses/real.php notes: This license is OSI certified spdx_license_key: RPSL-1.0 +osi_license_key: RPSL-1.0 text_urls: - http://opensource.org/licenses/real.php osi_url: http://opensource.org/licenses/real.php @@ -24,4 +25,3 @@ ignorable_urls: - https://www.helixcommunity.org/content/complicense - https://www.helixcommunity.org/content/rcsl - https://www.helixcommunity.org/content/rpsl -osi_license_key: RPSL-1.0 diff --git a/src/licensedcode/data/licenses/scilab-en-2005.yml b/src/licensedcode/data/licenses/scilab-en-2005.yml index 2e722581f12..e6a06f6e24e 100644 --- a/src/licensedcode/data/licenses/scilab-en-2005.yml +++ b/src/licensedcode/data/licenses/scilab-en-2005.yml @@ -11,7 +11,7 @@ text_urls: - https://directory.fsf.org/wiki/License:Scilab-old ignorable_copyrights: - Scilab (c) INRIA-ENPC. -ignorable_authors: - - INRIA ignorable_holders: - Scilab INRIA-ENPC. +ignorable_authors: + - INRIA diff --git a/src/licensedcode/data/licenses/sgi-cid-1.0.yml b/src/licensedcode/data/licenses/sgi-cid-1.0.yml index 2fa6f769ea4..7b12a660600 100644 --- a/src/licensedcode/data/licenses/sgi-cid-1.0.yml +++ b/src/licensedcode/data/licenses/sgi-cid-1.0.yml @@ -9,9 +9,9 @@ text_urls: - http://www.xfree86.org/current/LICENSE10.html ignorable_copyrights: - Copyright (c) 1994-1999 Silicon Graphics, Inc. -ignorable_authors: - - Silicon Graphics, Inc. ignorable_holders: - Silicon Graphics, Inc. +ignorable_authors: + - Silicon Graphics, Inc. ignorable_urls: - http://www.sgi.com/software/opensource/cid/license.html diff --git a/src/licensedcode/data/licenses/sgi-glx-1.0.yml b/src/licensedcode/data/licenses/sgi-glx-1.0.yml index cf9179b5265..85692f196e7 100644 --- a/src/licensedcode/data/licenses/sgi-glx-1.0.yml +++ b/src/licensedcode/data/licenses/sgi-glx-1.0.yml @@ -9,9 +9,9 @@ text_urls: - http://velib.kyb.mpg.de/docu/GLX.html ignorable_copyrights: - (c) 1991-9 Silicon Graphics, Inc. -ignorable_authors: - - Silicon Graphics, Inc. ignorable_holders: - Silicon Graphics, Inc. +ignorable_authors: + - Silicon Graphics, Inc. ignorable_urls: - http://www.sgi.com/software/opensource/glx/license.html diff --git a/src/licensedcode/data/licenses/shl-2.0.yml b/src/licensedcode/data/licenses/shl-2.0.yml index 317565e984c..628cba98124 100644 --- a/src/licensedcode/data/licenses/shl-2.0.yml +++ b/src/licensedcode/data/licenses/shl-2.0.yml @@ -7,5 +7,4 @@ homepage_url: https://solderpad.org/licenses/SHL-2.0/ is_exception: yes spdx_license_key: SHL-2.0 ignorable_urls: - - http://apache.org/licenses/LICENSE-2.0 - + - http://apache.org/licenses/LICENSE-2.0 diff --git a/src/licensedcode/data/licenses/shl-2.1.yml b/src/licensedcode/data/licenses/shl-2.1.yml index 61d6fd85248..2044e732805 100644 --- a/src/licensedcode/data/licenses/shl-2.1.yml +++ b/src/licensedcode/data/licenses/shl-2.1.yml @@ -7,6 +7,5 @@ homepage_url: https://solderpad.org/licenses/SHL-2.1/ is_exception: yes spdx_license_key: SHL-2.1 ignorable_urls: - - http://apache.org/licenses/LICENSE-2.0 - - https://solderpad.org/licenses/SHL-2.1/ - + - http://apache.org/licenses/LICENSE-2.0 + - https://solderpad.org/licenses/SHL-2.1/ diff --git a/src/licensedcode/data/licenses/simpl-1.1.yml b/src/licensedcode/data/licenses/simpl-1.1.yml index d435be0dcc6..378a76dfbd4 100644 --- a/src/licensedcode/data/licenses/simpl-1.1.yml +++ b/src/licensedcode/data/licenses/simpl-1.1.yml @@ -5,11 +5,10 @@ category: Permissive owner: Analysis and Solutions Company homepage_url: http://www.analysisandsolutions.com/software/license.htm spdx_license_key: LicenseRef-scancode-simpl-1.1 +minimum_coverage: 80 ignorable_copyrights: - Copyright (c) The Analysis and Solutions Company http://www.analysisandsolutions.com ignorable_holders: - The Analysis and Solutions Company ignorable_urls: - http://www.analysisandsolutions.com/ -minimum_coverage: 80 - diff --git a/src/licensedcode/data/licenses/smppl.yml b/src/licensedcode/data/licenses/smppl.yml index c3d8626fae7..0dc859add6a 100644 --- a/src/licensedcode/data/licenses/smppl.yml +++ b/src/licensedcode/data/licenses/smppl.yml @@ -10,5 +10,4 @@ ignorable_copyrights: ignorable_holders: - National Security Agency ignorable_authors: - - the U.S. Government. BAE Systems - + - the U.S. Government. BAE Systems diff --git a/src/licensedcode/data/licenses/solace-software-eula-2020.yml b/src/licensedcode/data/licenses/solace-software-eula-2020.yml index 739f90ba70e..66b3d97f8c0 100644 --- a/src/licensedcode/data/licenses/solace-software-eula-2020.yml +++ b/src/licensedcode/data/licenses/solace-software-eula-2020.yml @@ -7,12 +7,11 @@ homepage_url: https://solace.com/license-software/ spdx_license_key: LicenseRef-scancode-solace-software-eula-2020 text_urls: - https://solace.com/wp-content/uploads/2019/03/Solace-Software-EULA.pdf -ignorable_emails: - - support@solace.com - - support@solcae.com ignorable_urls: - - http://www.bis.doc.gov/ - - http://www.opensource.org/licenses/alphabetical - - http://www.treas.gov/offices/enforcement/ofac - - https://solace.com/support - + - http://www.bis.doc.gov/ + - http://www.opensource.org/licenses/alphabetical + - http://www.treas.gov/offices/enforcement/ofac + - https://solace.com/support +ignorable_emails: + - support@solace.com + - support@solcae.com diff --git a/src/licensedcode/data/licenses/sparky.yml b/src/licensedcode/data/licenses/sparky.yml index 694b0b3236b..272087a4f99 100644 --- a/src/licensedcode/data/licenses/sparky.yml +++ b/src/licensedcode/data/licenses/sparky.yml @@ -9,7 +9,7 @@ text_urls: - http://www.cgl.ucsf.edu/home/sparky/sparky-license.html ignorable_copyrights: - Copyright (c) 2009, The Regents of the University of California -ignorable_authors: - - the UCSF Resource ignorable_holders: - The Regents of the University of California +ignorable_authors: + - the UCSF Resource diff --git a/src/licensedcode/data/licenses/spl-1.0.yml b/src/licensedcode/data/licenses/spl-1.0.yml index a195abf87f7..992c02cb47f 100644 --- a/src/licensedcode/data/licenses/spl-1.0.yml +++ b/src/licensedcode/data/licenses/spl-1.0.yml @@ -6,6 +6,7 @@ owner: Oracle (Sun) homepage_url: http://www.netbeans.org/about/legal/spl.html notes: Per SPDX.org, this license is OSI certified spdx_license_key: SPL-1.0 +osi_license_key: SPL-1.0 text_urls: - http://java.sun.com/spl.html - https://fedoraproject.org/wiki/Licensing/Sun_Public_License @@ -17,4 +18,3 @@ other_urls: - https://opensource.org/licenses/SPL-1.0 ignorable_urls: - http://www.sun.com/ -osi_license_key: SPL-1.0 diff --git a/src/licensedcode/data/licenses/ssleay-windows.yml b/src/licensedcode/data/licenses/ssleay-windows.yml index f2b7956262f..eef7f66c435 100644 --- a/src/licensedcode/data/licenses/ssleay-windows.yml +++ b/src/licensedcode/data/licenses/ssleay-windows.yml @@ -9,14 +9,13 @@ text_urls: - http://www.openssl.org/source/license.html other_urls: - http://h71000.www7.hp.com/doc/83final/ba554_90007/apcs02.html +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_holders: + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) - Tim Hudson (tjh@cryptsoft.com) -ignorable_copyrights: - - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_emails: - - eay@cryptsoft.com - - tjh@cryptsoft.com -ignorable_holders: - - Tim Hudson - + - eay@cryptsoft.com + - tjh@cryptsoft.com diff --git a/src/licensedcode/data/licenses/ssleay.yml b/src/licensedcode/data/licenses/ssleay.yml index ba1284d55bb..44366191c1b 100644 --- a/src/licensedcode/data/licenses/ssleay.yml +++ b/src/licensedcode/data/licenses/ssleay.yml @@ -7,13 +7,12 @@ homepage_url: http://www.openssl.org/source/license.html spdx_license_key: LicenseRef-scancode-ssleay text_urls: - http://www.openssl.org/source/license.html +ignorable_copyrights: + - holder is Tim Hudson (tjh@cryptsoft.com) +ignorable_holders: + - Tim Hudson ignorable_authors: - Eric Young (eay@cryptsoft.com) -ignorable_copyrights: - - holder is Tim Hudson (tjh@cryptsoft.com) ignorable_emails: - - eay@cryptsoft.com - - tjh@cryptsoft.com -ignorable_holders: - - Tim Hudson - + - eay@cryptsoft.com + - tjh@cryptsoft.com diff --git a/src/licensedcode/data/licenses/sun-bsd-no-nuclear.yml b/src/licensedcode/data/licenses/sun-bsd-no-nuclear.yml index fe4d1703985..ed72c53fc4b 100644 --- a/src/licensedcode/data/licenses/sun-bsd-no-nuclear.yml +++ b/src/licensedcode/data/licenses/sun-bsd-no-nuclear.yml @@ -3,8 +3,8 @@ short_name: Sun BSD-Style with Nuclear Restrictions name: Sun BSD-Style with Nuclear Restrictions category: Free Restricted owner: Oracle (Sun) -minimum_coverage: 90 spdx_license_key: BSD-3-Clause-No-Nuclear-License other_urls: - http://download.oracle.com/otn-pub/java/licenses/bsd.txt?AuthParam=1467140197_43d516ce1776bd08a58235a7785be1cc - https://jogamp.org/git/?p=gluegen.git;a=blob_plain;f=LICENSE.txt +minimum_coverage: 90 diff --git a/src/licensedcode/data/licenses/sun-sissl-1.1.yml b/src/licensedcode/data/licenses/sun-sissl-1.1.yml index 39527b70c5b..430d1b5463b 100644 --- a/src/licensedcode/data/licenses/sun-sissl-1.1.yml +++ b/src/licensedcode/data/licenses/sun-sissl-1.1.yml @@ -5,6 +5,7 @@ category: Proprietary Free owner: Oracle (Sun) homepage_url: http://www.openoffice.org/licenses/sissl_license.html spdx_license_key: SISSL +osi_license_key: SISSL text_urls: - http://www.openoffice.org/licenses/sissl_license.html other_urls: @@ -13,4 +14,3 @@ other_urls: ignorable_urls: - http://api.openoffice.org/ - http://xml.openoffice.org/ -osi_license_key: SISSL diff --git a/src/licensedcode/data/licenses/supervisor.yml b/src/licensedcode/data/licenses/supervisor.yml index d6c392032bd..eca54d1e9db 100644 --- a/src/licensedcode/data/licenses/supervisor.yml +++ b/src/licensedcode/data/licenses/supervisor.yml @@ -16,13 +16,13 @@ ignorable_copyrights: - Copyright (c) 2007 Zope Corporation and Contributors - Copyright (c) Sam Rushing - Copyright (c) by Daniel Krech, http://eikeon.com/ -ignorable_authors: - - Sam Rushing ignorable_holders: - Agendaless Consulting and Contributors - Daniel Krech - Sam Rushing - Zope Corporation and Contributors +ignorable_authors: + - Sam Rushing ignorable_urls: - http://eikeon.com/ - http://www.agendaless.com/ diff --git a/src/licensedcode/data/licenses/sybase.yml b/src/licensedcode/data/licenses/sybase.yml index 435aa8772cf..779f203ca31 100644 --- a/src/licensedcode/data/licenses/sybase.yml +++ b/src/licensedcode/data/licenses/sybase.yml @@ -6,6 +6,7 @@ owner: Sybase, Inc. (an SAP subsidiary) homepage_url: http://opensource.org/licenses/sybase.php notes: Per SPDX.org, this license is OSI certified spdx_license_key: Watcom-1.0 +osi_license_key: Watcom-1.0 text_urls: - http://opensource.org/licenses/sybase.php osi_url: http://opensource.org/licenses/sybase.php @@ -18,4 +19,3 @@ ignorable_holders: - Sybase, Inc. ignorable_urls: - http://www.sybase.com/developer/opensource -osi_license_key: Watcom-1.0 diff --git a/src/licensedcode/data/licenses/torque-1.1.yml b/src/licensedcode/data/licenses/torque-1.1.yml index 77f73130c6a..ee6220e095d 100644 --- a/src/licensedcode/data/licenses/torque-1.1.yml +++ b/src/licensedcode/data/licenses/torque-1.1.yml @@ -21,10 +21,10 @@ notes: | spdx_license_key: TORQUE-1.1 ignorable_copyrights: - Copyright (c) 2010-2011 Adaptive Computing Enterprises, Inc. -ignorable_authors: - - NASA Ames Research Center, Lawrence Livermore National Laboratory, and Veridian ignorable_holders: - Adaptive Computing Enterprises, Inc. +ignorable_authors: + - NASA Ames Research Center, Lawrence Livermore National Laboratory, and Veridian ignorable_urls: - http://www.adaptivecomputing.com/ - http://www.clusterresources.com/ diff --git a/src/licensedcode/data/licenses/truecrypt-3.1.yml b/src/licensedcode/data/licenses/truecrypt-3.1.yml index 4fb6d897fdd..d6342f88c8d 100644 --- a/src/licensedcode/data/licenses/truecrypt-3.1.yml +++ b/src/licensedcode/data/licenses/truecrypt-3.1.yml @@ -3,19 +3,18 @@ short_name: TrueCrypt License 3.1 name: TrueCrypt License 3.1 category: Copyleft Limited owner: TrueCrypt +notes: this license embeds a few permissive licenses that are included in its text. spdx_license_key: LicenseRef-scancode-truecrypt-3.1 minimum_coverage: 60 ignorable_copyrights: - Copyright (c) 1998-2000 Paul Le Roux - Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. - Copyright (c) 2002-2004 Mark Adler -ignorable_authors: - - Paul Le Roux ignorable_holders: - Brian Gladman, Worcester, UK. - Mark Adler - Paul Le Roux +ignorable_authors: + - Paul Le Roux ignorable_emails: - pleroux@swprofessionals.com -notes: this license embeds a few permissive licenses that are included in its - text. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/tumbolia.yml b/src/licensedcode/data/licenses/tumbolia.yml index ed6a1e3fc20..1ced22e1495 100644 --- a/src/licensedcode/data/licenses/tumbolia.yml +++ b/src/licensedcode/data/licenses/tumbolia.yml @@ -3,15 +3,14 @@ short_name: Tumbolia Public License name: Tumbolia Public License category: Permissive owner: Paul Davis +spdx_license_key: LicenseRef-scancode-tumbolia other_urls: - https://fedoraproject.org/wiki/Licensing/Tumbolia - https://github.com/c-w/ghp-import/blob/aef95b550990374fa5e6598752813bf59bfab9cc/LICENSE minimum_coverage: 95 -spdx_license_key: LicenseRef-scancode-tumbolia ignorable_copyrights: - - Copyright 2013, Paul Davis -ignorable_emails: - - paul.joseph.davis@gmail.com + - Copyright 2013, Paul Davis ignorable_holders: - - Paul Davis - + - Paul Davis +ignorable_emails: + - paul.joseph.davis@gmail.com diff --git a/src/licensedcode/data/licenses/ucl-1.0.yml b/src/licensedcode/data/licenses/ucl-1.0.yml index 748d06441da..55181cd4fe6 100644 --- a/src/licensedcode/data/licenses/ucl-1.0.yml +++ b/src/licensedcode/data/licenses/ucl-1.0.yml @@ -1,19 +1,19 @@ key: ucl-1.0 short_name: UCL-1.0 name: Upstream Compatibility License v1.0 -spdx_license_key: UCL-1.0 category: Copyleft Limited owner: Lawrence Rosen homepage_url: https://opensource.org/licenses/UCL-1.0 +spdx_license_key: UCL-1.0 text_urls: - https://opensource.org/licenses/UCL-1.0 osi_url: https://opensource.org/licenses/UCL-1.0 other_urls: - https://github.com/spdx/license-list-XML/issues/894 +standard_notice: Licensed under the Upstream Compatibility License 1.0 ignorable_copyrights: - Copyright (c) 2005 Lawrence Rosen - Copyright (c) 2017 Nigel Tzeng ignorable_holders: - Lawrence Rosen - Nigel Tzeng -standard_notice: Licensed under the Upstream Compatibility License 1.0 diff --git a/src/licensedcode/data/licenses/unknown-license-reference.yml b/src/licensedcode/data/licenses/unknown-license-reference.yml index ef2483ee7fb..99fd1952281 100644 --- a/src/licensedcode/data/licenses/unknown-license-reference.yml +++ b/src/licensedcode/data/licenses/unknown-license-reference.yml @@ -3,8 +3,8 @@ short_name: Unknown License reference name: Unknown License file reference category: Unstated License owner: Unspecified +notes: This applies to the case of a file with no clear license, which may be referenced via + URL or text such as "See license in..." or "This file is licensed under...", but where the + reference cannot be resolved to a specific named, public license. is_unknown: yes spdx_license_key: LicenseRef-scancode-unknown-license-reference -notes: This applies to the case of a file with no clear license, which may be referenced - via URL or text such as "See license in..." or "This file is licensed under...", - but where the reference cannot be resolved to a specific named, public license. diff --git a/src/licensedcode/data/licenses/unknown-spdx.yml b/src/licensedcode/data/licenses/unknown-spdx.yml index dbbe72567b0..02a960bcd90 100644 --- a/src/licensedcode/data/licenses/unknown-spdx.yml +++ b/src/licensedcode/data/licenses/unknown-spdx.yml @@ -3,6 +3,6 @@ short_name: unknown SPDX name: Unknown SPDX license detected but not recognized category: Unstated License owner: Unspecified +notes: This applies to an invalid reference to an SPDX license identifier. is_unknown: yes spdx_license_key: LicenseRef-scancode-unknown-spdx -notes: This applies to an invalid reference to an SPDX license identifier. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/unknown.yml b/src/licensedcode/data/licenses/unknown.yml index 28f9936df45..76151aafe53 100644 --- a/src/licensedcode/data/licenses/unknown.yml +++ b/src/licensedcode/data/licenses/unknown.yml @@ -3,7 +3,7 @@ short_name: unknown name: Unknown license detected but not recognized category: Unstated License owner: Unspecified +notes: This applies to the case where there is text referring to a license, but it is not possible + to determine exactly which license. is_unknown: yes spdx_license_key: LicenseRef-scancode-unknown -notes: This applies to the case where there is text referring to a license, but it is not - possible to determine exactly which license. diff --git a/src/licensedcode/data/licenses/uofu-rfpl.yml b/src/licensedcode/data/licenses/uofu-rfpl.yml index 2a3ca4c8281..e69935d7d9f 100644 --- a/src/licensedcode/data/licenses/uofu-rfpl.yml +++ b/src/licensedcode/data/licenses/uofu-rfpl.yml @@ -9,7 +9,7 @@ text_urls: - http://www.cs.utah.edu/~gk/teem/txt/LICENSE.txt ignorable_copyrights: - Copyright (c) 2001, 1998 University of Utah -ignorable_authors: - - the University of Utah ignorable_holders: - University of Utah +ignorable_authors: + - the University of Utah diff --git a/src/licensedcode/data/licenses/us-govt-public-domain.yml b/src/licensedcode/data/licenses/us-govt-public-domain.yml index 232d28a6260..8be33292255 100644 --- a/src/licensedcode/data/licenses/us-govt-public-domain.yml +++ b/src/licensedcode/data/licenses/us-govt-public-domain.yml @@ -6,8 +6,8 @@ owner: US Government notes: Per 17 U.S. Code § 105. Subject matter of copyright, United States Government works Copyright protection under this title is not available for any work of the United States Government -spdx_license_key: LicenseRef-scancode-us-govt-public-domain is_generic: yes +spdx_license_key: LicenseRef-scancode-us-govt-public-domain other_urls: - https://www.law.cornell.edu/uscode/text/17/105 - https://en.wikipedia.org/wiki/Copyright_status_of_works_by_the_federal_government_of_the_United_States diff --git a/src/licensedcode/data/licenses/vhfpl-1.1.yml b/src/licensedcode/data/licenses/vhfpl-1.1.yml index b11ac6291d4..75aec1965d1 100644 --- a/src/licensedcode/data/licenses/vhfpl-1.1.yml +++ b/src/licensedcode/data/licenses/vhfpl-1.1.yml @@ -4,16 +4,14 @@ name: vhf Public License V 1.1 category: Copyleft owner: Cenon GmbH homepage_url: http://www.cenon.de -notes: The original name of Cenon was vhf interservice GmbH at - http://www.vhf-interservice.com/ and http://www.vhf.de - The company has websites under several different domain names. +notes: The original name of Cenon was vhf interservice GmbH at http://www.vhf-interservice.com/ + and http://www.vhf.de The company has websites under several different domain names. spdx_license_key: LicenseRef-scancode-vhfpl-1.1 ignorable_copyrights: - - Copyright (c) 2003 vhf interservice GmbH service@vhf.de - - Copyright (c) 2003/2004 vhf interservice GmbH, Im Marxle -ignorable_emails: - - service@vhf.de + - Copyright (c) 2003 vhf interservice GmbH service@vhf.de + - Copyright (c) 2003/2004 vhf interservice GmbH, Im Marxle ignorable_holders: - - vhf interservice GmbH - - vhf interservice GmbH, Im Marxle - + - vhf interservice GmbH + - vhf interservice GmbH, Im Marxle +ignorable_emails: + - service@vhf.de diff --git a/src/licensedcode/data/licenses/vsl-1.0.yml b/src/licensedcode/data/licenses/vsl-1.0.yml index 9189bc3ed92..c28ff5866df 100644 --- a/src/licensedcode/data/licenses/vsl-1.0.yml +++ b/src/licensedcode/data/licenses/vsl-1.0.yml @@ -6,6 +6,7 @@ owner: Vovida homepage_url: http://www.vovida.org/About/license.html notes: Per SPDX.org, this license is OSI certified spdx_license_key: VSL-1.0 +osi_license_key: VSL-1.0 text_urls: - http://www.vovida.org/About/license.html osi_url: http://opensource.org/licenses/vovidapl.php @@ -21,4 +22,3 @@ ignorable_urls: - http://www.vovida.org/ ignorable_emails: - vocal@vovida.org -osi_license_key: VSL-1.0 diff --git a/src/licensedcode/data/licenses/winzip-eula.yml b/src/licensedcode/data/licenses/winzip-eula.yml index 68d5eb73e50..82e946d1df2 100644 --- a/src/licensedcode/data/licenses/winzip-eula.yml +++ b/src/licensedcode/data/licenses/winzip-eula.yml @@ -7,10 +7,10 @@ homepage_url: http://www.winzip.com/eula.html spdx_license_key: LicenseRef-scancode-winzip-eula ignorable_copyrights: - Copyright (c) 20 Your name WinZip Computing, S.L. and its licensors -ignorable_authors: - - WinZip's Self Extractor ignorable_holders: - Your name WinZip Computing, S.L. and its licensors +ignorable_authors: + - WinZip's Self Extractor ignorable_urls: - http://winzip.com/en/eula.htm - http://www.winzip.com/ diff --git a/src/licensedcode/data/licenses/x11-xconsortium-veillard.yml b/src/licensedcode/data/licenses/x11-xconsortium-veillard.yml index cc6b9f233ae..8bb0204f996 100644 --- a/src/licensedcode/data/licenses/x11-xconsortium-veillard.yml +++ b/src/licensedcode/data/licenses/x11-xconsortium-veillard.yml @@ -3,10 +3,10 @@ short_name: X11-Style (X Consortium Veillard) name: X11-Style (X Consortium Veillard) category: Permissive owner: Daniel Veillard +notes: the license key has been renamed from the old x11-xconsortium_veillard spdx_license_key: LicenseRef-scancode-x11-xconsortium-veillard other_spdx_license_keys: - LicenseRef-scancode-x11-xconsortium_veillard -notes: the license key has been renamed from the old x11-xconsortium_veillard standard_notice: | Except where otherwise noted in the source code (e.g. the files hash.c, list.c and the trio files, which are covered by a similar licence but diff --git a/src/licensedcode/data/licenses/xfree86-1.0.yml b/src/licensedcode/data/licenses/xfree86-1.0.yml index 604b593e428..18892350d98 100644 --- a/src/licensedcode/data/licenses/xfree86-1.0.yml +++ b/src/licensedcode/data/licenses/xfree86-1.0.yml @@ -8,4 +8,3 @@ spdx_license_key: LicenseRef-scancode-xfree86-1.0 text_urls: - http://www.xfree86.org/current/LICENSE5.html minimum_coverage: 80 - diff --git a/src/licensedcode/data/licenses/xinetd.yml b/src/licensedcode/data/licenses/xinetd.yml index f269c56df88..298b41ee582 100644 --- a/src/licensedcode/data/licenses/xinetd.yml +++ b/src/licensedcode/data/licenses/xinetd.yml @@ -14,5 +14,4 @@ ignorable_holders: - Rob Braun - Steve Grubb ignorable_authors: - - Panagiotis Tsirigotis - + - Panagiotis Tsirigotis diff --git a/src/licensedcode/data/licenses/xmldb-1.0.yml b/src/licensedcode/data/licenses/xmldb-1.0.yml index 53cd7dfffd2..40d648336f6 100644 --- a/src/licensedcode/data/licenses/xmldb-1.0.yml +++ b/src/licensedcode/data/licenses/xmldb-1.0.yml @@ -12,10 +12,10 @@ other_urls: - http://www.xmldb.org/ ignorable_copyrights: - Copyright (c) 2000-2003 The XML:DB Initiative -ignorable_authors: - - the XML:DB Initiative (http://www.xmldb.org/) ignorable_holders: - The XML:DB Initiative +ignorable_authors: + - the XML:DB Initiative (http://www.xmldb.org/) ignorable_urls: - http://www.xmldb.org/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/zlib-acknowledgement.yml b/src/licensedcode/data/licenses/zlib-acknowledgement.yml index 735d5b4e152..6baee654eb8 100644 --- a/src/licensedcode/data/licenses/zlib-acknowledgement.yml +++ b/src/licensedcode/data/licenses/zlib-acknowledgement.yml @@ -15,6 +15,7 @@ other_spdx_license_keys: - Nunit other_urls: - https://fedoraproject.org/wiki/Licensing/ZlibWithAcknowledgement +minimum_coverage: 50 ignorable_copyrights: - Copyright (c) 2000-2002 Philip A. Craig - Copyright (c) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov @@ -23,4 +24,3 @@ ignorable_holders: - Charlie Poole - James W. Newkirk, Michael C. Two, Alexei A. Vorontsov - Philip A. Craig -minimum_coverage: 50 diff --git a/src/licensedcode/data/licenses/zlib.yml b/src/licensedcode/data/licenses/zlib.yml index 621f4071ceb..15b65dcdcae 100644 --- a/src/licensedcode/data/licenses/zlib.yml +++ b/src/licensedcode/data/licenses/zlib.yml @@ -15,4 +15,3 @@ other_urls: - http://www.zlib.net/zlib_license.html - https://opensource.org/licenses/Zlib minimum_coverage: 50 - diff --git a/src/licensedcode/data/licenses/zpl-1.0.yml b/src/licensedcode/data/licenses/zpl-1.0.yml index 9a9f356aaba..735be664ba6 100644 --- a/src/licensedcode/data/licenses/zpl-1.0.yml +++ b/src/licensedcode/data/licenses/zpl-1.0.yml @@ -8,9 +8,9 @@ text_urls: - http://old.zope.org/Members/ensane/PTK2CMF/copy_folders.py.1 ignorable_copyrights: - Copyright (c) Digital Creations -ignorable_authors: - - Digital Creations ignorable_holders: - Digital Creations +ignorable_authors: + - Digital Creations ignorable_urls: - http://www.zope.org/ diff --git a/src/licensedcode/data/licenses/zpl-1.1.yml b/src/licensedcode/data/licenses/zpl-1.1.yml index 629f83e0abe..47813da8414 100644 --- a/src/licensedcode/data/licenses/zpl-1.1.yml +++ b/src/licensedcode/data/licenses/zpl-1.1.yml @@ -12,9 +12,9 @@ other_urls: - http://www.zope.com/ ignorable_copyrights: - Copyright (c) Zope Corporation -ignorable_authors: - - Zope Corporation ignorable_holders: - Zope Corporation +ignorable_authors: + - Zope Corporation ignorable_urls: - http://www.zope.com/ diff --git a/src/licensedcode/data/licenses/zpl-2.0.yml b/src/licensedcode/data/licenses/zpl-2.0.yml index d6e4e55bd2e..6bc76430cd6 100644 --- a/src/licensedcode/data/licenses/zpl-2.0.yml +++ b/src/licensedcode/data/licenses/zpl-2.0.yml @@ -6,6 +6,7 @@ owner: Zope Community homepage_url: http://www.zope.org/Resources/License/ notes: Per SPDX.org, this license is OSI certified spdx_license_key: ZPL-2.0 +osi_license_key: ZPL-2.0 text_urls: - http://www.zope.org/Resources/License/ other_urls: @@ -15,4 +16,3 @@ other_urls: - https://opensource.org/licenses/ZPL-2.0 ignorable_urls: - http://www.zope.com/Marks -osi_license_key: ZPL-2.0 diff --git a/src/licensedcode/data/licenses/zsh.yml b/src/licensedcode/data/licenses/zsh.yml index c2072ef0677..7035bd5f353 100644 --- a/src/licensedcode/data/licenses/zsh.yml +++ b/src/licensedcode/data/licenses/zsh.yml @@ -5,11 +5,10 @@ category: Permissive owner: Zsh Development Group homepage_url: https://sourceforge.net/p/zsh/code/ci/master/tree/LICENCE spdx_license_key: LicenseRef-scancode-zsh +minimum_coverage: 90 ignorable_copyrights: - - copyright (c) 1992-2017 Paul Falstad, Richard Coleman, Zoltan Hidvegi, Andrew Main, Peter - Stephenson, Sven Wischnowsky, and others + - copyright (c) 1992-2017 Paul Falstad, Richard Coleman, Zoltan Hidvegi, Andrew Main, Peter + Stephenson, Sven Wischnowsky, and others ignorable_holders: - - Paul Falstad, Richard Coleman, Zoltan Hidvegi, Andrew Main, Peter Stephenson, Sven Wischnowsky, - and others -minimum_coverage: 90 - + - Paul Falstad, Richard Coleman, Zoltan Hidvegi, Andrew Main, Peter Stephenson, Sven Wischnowsky, + and others From f8e7e1fa03df54d658d52f6ed39bace5aa0f945a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:39:29 +0200 Subject: [PATCH 17/54] Update SPDX license list to 3.18 Signed-off-by: Philippe Ombredanne --- .../data/licenses/cc-by-3.0-igo.LICENSE | 101 +++++++++ .../data/licenses/cc-by-3.0-igo.yml | 12 + .../licenses/gstreamer-exception-2005.LICENSE | 4 + .../licenses/gstreamer-exception-2005.yml | 9 + .../licenses/gstreamer-exception-2008.LICENSE | 6 + .../licenses/gstreamer-exception-2008.yml | 9 + .../licenses/lzma-sdk-9.11-to-9.20.LICENSE | 8 + .../data/licenses/lzma-sdk-9.11-to-9.20.yml | 9 + .../data/licenses/lzma-sdk-9.22.LICENSE | 15 ++ .../data/licenses/lzma-sdk-9.22.yml | 9 + .../data/licenses/mpi-permissive.LICENSE | 10 + .../data/licenses/mpi-permissive.yml | 8 + src/licensedcode/data/licenses/ms-lpl.yml | 10 +- .../data/licenses/python-2.0.1.LICENSE | 207 ++++++++++++++++++ .../data/licenses/python-2.0.1.yml | 22 ++ 15 files changed, 437 insertions(+), 2 deletions(-) create mode 100644 src/licensedcode/data/licenses/cc-by-3.0-igo.LICENSE create mode 100644 src/licensedcode/data/licenses/cc-by-3.0-igo.yml create mode 100644 src/licensedcode/data/licenses/gstreamer-exception-2005.LICENSE create mode 100644 src/licensedcode/data/licenses/gstreamer-exception-2005.yml create mode 100644 src/licensedcode/data/licenses/gstreamer-exception-2008.LICENSE create mode 100644 src/licensedcode/data/licenses/gstreamer-exception-2008.yml create mode 100644 src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.LICENSE create mode 100644 src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.yml create mode 100644 src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE create mode 100644 src/licensedcode/data/licenses/lzma-sdk-9.22.yml create mode 100644 src/licensedcode/data/licenses/mpi-permissive.LICENSE create mode 100644 src/licensedcode/data/licenses/mpi-permissive.yml create mode 100644 src/licensedcode/data/licenses/python-2.0.1.LICENSE create mode 100644 src/licensedcode/data/licenses/python-2.0.1.yml diff --git a/src/licensedcode/data/licenses/cc-by-3.0-igo.LICENSE b/src/licensedcode/data/licenses/cc-by-3.0-igo.LICENSE new file mode 100644 index 00000000000..9d8593d4dd5 --- /dev/null +++ b/src/licensedcode/data/licenses/cc-by-3.0-igo.LICENSE @@ -0,0 +1,101 @@ +Creative Commons Attribution 3.0 IGO + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. THE LICENSOR IS NOT NECESSARILY AN INTERGOVERNMENTAL ORGANIZATION (IGO), AS DEFINED IN THE LICENSE BELOW. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("LICENSE"). THE LICENSOR (DEFINED BELOW) HOLDS COPYRIGHT AND OTHER RIGHTS IN THE WORK. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION FOR YOUR ACCEPTANCE AND AGREEMENT TO THE TERMS OF THE LICENSE. + +1. Definitions + + a. "IGO" means, solely and exclusively for purposes of this License, an organization established by a treaty or other instrument governed by international law and possessing its own international legal personality. Other organizations established to carry out activities across national borders and that accordingly enjoy immunity from legal process are also IGOs for the sole and exclusive purposes of this License. IGOs may include as members, in addition to states, other entities. + + b. "Work" means the literary and/or artistic work eligible for copyright protection, whatever may be the mode or form of its expression including digital form, and offered under the terms of this License. It is understood that a database, which by reason of the selection and arrangement of its contents constitutes an intellectual creation, is considered a Work. + + c. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License and may be, but is not necessarily, an IGO. + + d. "You" means an individual or entity exercising rights under this License. + + e. "Reproduce" means to make a copy of the Work in any manner or form, and by any means. + + f. "Distribute" means the activity of making publicly available the Work or Adaptation (or copies of the Work or Adaptation), as applicable, by sale, rental, public lending or any other known form of transfer of ownership or possession of the Work or copy of the Work. + + g. "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. + + h. "Adaptation" means a work derived from or based upon the Work, or upon the Work and other pre-existing works. Adaptations may include works such as translations, derivative works, or any alterations and arrangements of any kind involving the Work. For purposes of this License, where the Work is a musical work, performance, or phonogram, the synchronization of the Work in timed-relation with a moving image is an Adaptation. For the avoidance of doubt, including the Work in a Collection is not an Adaptation. + + i. "Collection" means a collection of literary or artistic works or other works or subject matter other than works listed in Section 1(b) 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. For the avoidance of doubt, a Collection will not be considered as an Adaptation. + +2. Scope of this License. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright protection. + +3. License Grant. Subject to the terms and conditions of this License, the Licensor hereby grants You a worldwide, royalty-free, non-exclusive license to exercise the rights in the Work as follows: + + a. to Reproduce, Distribute and Publicly Perform the Work, to incorporate the Work into one or more Collections, and to Reproduce, Distribute and Publicly Perform the Work as incorporated in the Collections; and, + + b. to create, Reproduce, Distribute and Publicly Perform Adaptations, provided that You clearly label, demarcate or otherwise identify that changes were made to the original Work. + + c. 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 waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, + + iii. Voluntary License Schemes. To the extent possible, the Licensor waives the right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary licensing scheme. + +This License lasts for the duration of the term of the copyright in the Work licensed by the Licensor. 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. All rights not expressly granted by the Licensor are hereby reserved. + +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 (see section 8(a)). 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 a Licensor You must, to the extent practicable, remove from the Collection any credit (inclusive of any logo, trademark, official mark or official emblem) as required by Section 4(b), as requested. If You create an Adaptation, upon notice from a Licensor You must, to the extent practicable, remove from the Adaptation any credit (inclusive of any logo, trademark, official mark or official emblem) as required by Section 4(b), as requested. + + b. 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) any attributions that the Licensor indicates be associated with the Work as indicated in a copyright notice, (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that the 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. The credit required by this Section 4(b) may be implemented in any reasonable manner; provided, however, that in the case of an Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributors to 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 contributors. 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 Licensor or others designated for attribution, of You or Your use of the Work, without the separate, express prior written permission of the Licensor or such others. + + c. Except as otherwise agreed in writing by the Licensor, 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 honor or reputation of the Licensor where moral rights apply. + +5. Representations, Warranties and Disclaimer + +THE 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, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. + +6. Limitation on Liability + +IN NO EVENT WILL THE 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 THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. Subject to the terms and conditions set forth in this License, the license granted here lasts for the duration of the term of the copyright in the Work licensed by the Licensor as stated in Section 3. Notwithstanding the above, the 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 below. + + b. If You fail to comply with this License, then 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. Notwithstanding the foregoing, this License reinstates automatically as of the date the violation is cured, provided it is cured within 30 days of You discovering the violation, or upon express reinstatement by the Licensor. For the avoidance of doubt, this Section 7(b) does not affect any rights the Licensor may have to seek remedies for violations of this License by You. + +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, the 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, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action, 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 Licensor. + + e. This License constitutes the entire agreement between You and the Licensor with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. The 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). Interpretation of the scope of the rights granted by the Licensor and the conditions imposed on You under this License, this License, and the rights and conditions set forth herein shall be made with reference to copyright as determined in accordance with general principles of international law, including the above mentioned conventions. + + g. Nothing in this License constitutes or may be interpreted as a limitation upon or waiver of any privileges and immunities that may apply to the Licensor or You, including immunity from the legal processes of any jurisdiction, national court or other authority. + + h. Where the Licensor is an IGO, any and all disputes arising under this License that cannot be settled amicably shall be resolved in accordance with the following procedure: + + i. Pursuant to a notice of mediation communicated by reasonable means by either You or the Licensor to the other, the dispute shall be submitted to non-binding mediation conducted in accordance with rules designated by the Licensor in the copyright notice published with the Work, or if none then in accordance with those communicated in the notice of mediation. The language used in the mediation proceedings shall be English unless otherwise agreed. + + ii. If any such dispute has not been settled within 45 days following the date on which the notice of mediation is provided, either You or the Licensor may, pursuant to a notice of arbitration communicated by reasonable means to the other, elect to have the dispute referred to and finally determined by arbitration. The arbitration shall be conducted in accordance with the rules designated by the Licensor in the copyright notice published with the Work, or if none then in accordance with the UNCITRAL Arbitration Rules as then in force. The arbitral tribunal shall consist of a sole arbitrator and the language of the proceedings shall be English unless otherwise agreed. The place of arbitration shall be where the Licensor has its headquarters. The arbitral proceedings shall be conducted remotely (e.g., via telephone conference or written submissions) whenever practicable. + + iii. Interpretation of this License in any dispute submitted to mediation or arbitration shall be as set forth in Section 8(f), above. + +Creative Commons Notice + +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of the Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License. + +Creative Commons may be contacted at https://creativecommons.org/. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/cc-by-3.0-igo.yml b/src/licensedcode/data/licenses/cc-by-3.0-igo.yml new file mode 100644 index 00000000000..133f390bc0c --- /dev/null +++ b/src/licensedcode/data/licenses/cc-by-3.0-igo.yml @@ -0,0 +1,12 @@ +key: cc-by-3.0-igo +short_name: Creative Commons Attribution 3.0 IGO +name: Creative Commons Attribution 3.0 IGO +category: Permissive +owner: Creative Commons +homepage_url: https://creativecommons.org/licenses/by/3.0/igo +spdx_license_key: CC-BY-3.0-IGO +text_urls: + - https://creativecommons.org/licenses/by/3.0/igo/legalcode +minimum_coverage: 50 +ignorable_urls: + - https://creativecommons.org/ diff --git a/src/licensedcode/data/licenses/gstreamer-exception-2005.LICENSE b/src/licensedcode/data/licenses/gstreamer-exception-2005.LICENSE new file mode 100644 index 00000000000..b5896312c3c --- /dev/null +++ b/src/licensedcode/data/licenses/gstreamer-exception-2005.LICENSE @@ -0,0 +1,4 @@ +The Totem project hereby grant permission for non-gpl compatible GStreamer +plugins to be used and distributed together with GStreamer and Totem. +This permission are above and beyond the permissions granted by the GPL license +Totem is covered by. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gstreamer-exception-2005.yml b/src/licensedcode/data/licenses/gstreamer-exception-2005.yml new file mode 100644 index 00000000000..6659427b785 --- /dev/null +++ b/src/licensedcode/data/licenses/gstreamer-exception-2005.yml @@ -0,0 +1,9 @@ +key: gstreamer-exception-2005 +short_name: GStreamer Exception (2005) +name: GStreamer Exception (2005) +category: Permissive +owner: Unspecified +is_exception: yes +spdx_license_key: GStreamer-exception-2005 +other_urls: + - https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/licensing.html?gi-language=c#licensing-of-applications-using-gstreamer diff --git a/src/licensedcode/data/licenses/gstreamer-exception-2008.LICENSE b/src/licensedcode/data/licenses/gstreamer-exception-2008.LICENSE new file mode 100644 index 00000000000..1afd24125d3 --- /dev/null +++ b/src/licensedcode/data/licenses/gstreamer-exception-2008.LICENSE @@ -0,0 +1,6 @@ +This project hereby grants permission for non-GPL compatible GStreamer plugins +to be used and distributed together with GStreamer and this project. This +permission is above and beyond the permissions granted by the GPL license by +which this project is covered. If you modify this code, you may extend this +exception to your version of the code, but you are not obligated to do so. +If you do not wish to do so, delete this exception statement from your version. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/gstreamer-exception-2008.yml b/src/licensedcode/data/licenses/gstreamer-exception-2008.yml new file mode 100644 index 00000000000..0c381613605 --- /dev/null +++ b/src/licensedcode/data/licenses/gstreamer-exception-2008.yml @@ -0,0 +1,9 @@ +key: gstreamer-exception-2008 +short_name: GStreamer Exception (2008) +name: GStreamer Exception (2008) +category: Permissive +owner: Unspecified +is_exception: yes +spdx_license_key: GStreamer-exception-2008 +other_urls: + - https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/licensing.html?gi-language=c#licensing-of-applications-using-gstreamer diff --git a/src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.LICENSE b/src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.LICENSE new file mode 100644 index 00000000000..8bff7f5d737 --- /dev/null +++ b/src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.LICENSE @@ -0,0 +1,8 @@ +LICENSE +------- + +LZMA SDK is written and placed in the public domain by Igor Pavlov. + +Some code in LZMA is based on public domain code from another developers: + 1) PPMd var.H (2001): Dmitry Shkarin + 2) SHA-256: Wei Dai (Crypto++ library) \ No newline at end of file diff --git a/src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.yml b/src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.yml new file mode 100644 index 00000000000..336171a762b --- /dev/null +++ b/src/licensedcode/data/licenses/lzma-sdk-9.11-to-9.20.yml @@ -0,0 +1,9 @@ +key: lzma-sdk-9.11-to-9.20 +short_name: LZMA SDK License (versions 9.11 to 9.20) +name: LZMA SDK License (versions 9.11 to 9.20) +category: Public Domain +owner: Igor Pavlov +spdx_license_key: LZMA-SDK-9.11-to-9.20 +other_urls: + - https://www.7-zip.org/sdk.html + - https://sourceforge.net/projects/sevenzip/files/LZMA%20SDK/ diff --git a/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE b/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE new file mode 100644 index 00000000000..4115d37240c --- /dev/null +++ b/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE @@ -0,0 +1,15 @@ +LICENSE +------- + +LZMA SDK is written and placed in the public domain by Igor Pavlov. + +Some code in LZMA SDK is based on public domain code from another developers: + 1) PPMd var.H (2001): Dmitry Shkarin + 2) SHA-256: Wei Dai (Crypto++ library) + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute the +original LZMA SDK code, either in source code form or as a compiled binary, for +any purpose, commercial or non-commercial, and by any means. + +LZMA SDK code is compatible with open source licenses, for example, you can +include it to GNU GPL or GNU LGPL code. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/lzma-sdk-9.22.yml b/src/licensedcode/data/licenses/lzma-sdk-9.22.yml new file mode 100644 index 00000000000..d986add07c1 --- /dev/null +++ b/src/licensedcode/data/licenses/lzma-sdk-9.22.yml @@ -0,0 +1,9 @@ +key: lzma-sdk-9.22 +short_name: LZMA SDK License (versions 9.22 and beyond) +name: LZMA SDK License (versions 9.22 and beyond) +category: Permissive +owner: Igor Pavlov +spdx_license_key: LZMA-SDK-9.22 +other_urls: + - https://www.7-zip.org/sdk.html + - https://sourceforge.net/projects/sevenzip/files/LZMA%20SDK/ diff --git a/src/licensedcode/data/licenses/mpi-permissive.LICENSE b/src/licensedcode/data/licenses/mpi-permissive.LICENSE new file mode 100644 index 00000000000..3a353c4196f --- /dev/null +++ b/src/licensedcode/data/licenses/mpi-permissive.LICENSE @@ -0,0 +1,10 @@ +Permission is hereby granted to use, reproduce, prepare derivative +works, and to redistribute to others. + + DISCLAIMER + +Neither Etnus, nor any of their employees, makes any warranty +express or implied, or assumes any legal liability or +responsibility for the accuracy, completeness, or usefulness of any +information, apparatus, product, or process disclosed, or +represents that its use would not infringe privately owned rights. diff --git a/src/licensedcode/data/licenses/mpi-permissive.yml b/src/licensedcode/data/licenses/mpi-permissive.yml new file mode 100644 index 00000000000..8c6bcd5ecbf --- /dev/null +++ b/src/licensedcode/data/licenses/mpi-permissive.yml @@ -0,0 +1,8 @@ +key: mpi-permissive +short_name: mpi Permissive License +name: mpi Permissive License +category: Permissive +owner: Etnus +spdx_license_key: mpi-permissive +other_urls: + - https://sources.debian.org/src/openmpi/4.1.0-10/ompi/debuggers/msgq_interface.h/?hl=19#L19 diff --git a/src/licensedcode/data/licenses/ms-lpl.yml b/src/licensedcode/data/licenses/ms-lpl.yml index beb0ee3bb61..b91cd9fa8f7 100644 --- a/src/licensedcode/data/licenses/ms-lpl.yml +++ b/src/licensedcode/data/licenses/ms-lpl.yml @@ -1,11 +1,17 @@ key: ms-lpl short_name: MS-LPL -name: Microsoft Limited Permissive License (MS-LPL) +name: Microsoft Limited Public License category: Permissive owner: Microsoft homepage_url: http://web.archive.org/web/20061122070300/http://www.microsoft.com/resources/sharedsource/licensingbasics/limitedpermissivelicense.mspx -spdx_license_key: LicenseRef-scancode-ms-lpl +notes: it was name "Microsoft Limited Permissive License" and later renamed by Microsoft +spdx_license_key: MS-LPL +other_spdx_license_keys: + - LicenseRef-scancode-ms-lpl text_urls: - http://web.archive.org/web/20061122070300/http://www.microsoft.com/resources/sharedsource/licensingbasics/limitedpermissivelicense.mspx other_urls: - https://web.archive.org/web/20091211214028/http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL + - https://www.openhub.net/licenses/mslpl + - https://github.com/gabegundy/atlserver/blob/master/License.txt + - https://en.wikipedia.org/wiki/Shared_Source_Initiative#Microsoft_Limited_Public_License_(Ms-LPL) diff --git a/src/licensedcode/data/licenses/python-2.0.1.LICENSE b/src/licensedcode/data/licenses/python-2.0.1.LICENSE new file mode 100644 index 00000000000..5eff35b2999 --- /dev/null +++ b/src/licensedcode/data/licenses/python-2.0.1.LICENSE @@ -0,0 +1,207 @@ +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Python Software Foundation; +All Rights Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +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 and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION +---------------------------------------------------------------------- + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/python-2.0.1.yml b/src/licensedcode/data/licenses/python-2.0.1.yml new file mode 100644 index 00000000000..bff8d4bf53e --- /dev/null +++ b/src/licensedcode/data/licenses/python-2.0.1.yml @@ -0,0 +1,22 @@ +key: python-2.0.1 +short_name: Python License 2.0.1 +name: Python Software Foundation License v2.0.1 +category: Permissive +owner: Python Software Foundation (PSF) +homepage_url: http://docs.python.org/license.html +spdx_license_key: Python-2.0.1 +other_urls: + - https://docs.python.org/3/license.html + - https://github.com/python/cpython/blob/main/LICENSE +ignorable_copyrights: + - Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands + - Copyright (c) 1995-2001 Corporation for National Research Initiatives + - Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, + 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Python Software Foundation +ignorable_holders: + - Corporation for National Research Initiatives + - Python Software Foundation + - Stichting Mathematisch Centrum Amsterdam, The Netherlands +ignorable_urls: + - http://hdl.handle.net/1895.22/1013 + - http://www.pythonlabs.com/logos.html From dbca75fca64529eb5cde64f2b89f105b618aacef Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:52:33 +0200 Subject: [PATCH 18/54] Improve existing license metadata Contributed-by: Dennis Clark Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/licenses/gstreamer-exception-2005.yml | 2 +- src/licensedcode/data/licenses/gstreamer-exception-2008.yml | 2 +- src/licensedcode/data/licenses/lzma-sdk-9.22.yml | 2 +- src/licensedcode/data/licenses/ms-lpl.yml | 2 +- src/licensedcode/data/licenses/ms-net-library-2016-05.yml | 5 ++++- src/licensedcode/data/licenses/python-2.0.1.yml | 1 + 6 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/licensedcode/data/licenses/gstreamer-exception-2005.yml b/src/licensedcode/data/licenses/gstreamer-exception-2005.yml index 6659427b785..76c6edde8f8 100644 --- a/src/licensedcode/data/licenses/gstreamer-exception-2005.yml +++ b/src/licensedcode/data/licenses/gstreamer-exception-2005.yml @@ -2,7 +2,7 @@ key: gstreamer-exception-2005 short_name: GStreamer Exception (2005) name: GStreamer Exception (2005) category: Permissive -owner: Unspecified +owner: GStreamer Project is_exception: yes spdx_license_key: GStreamer-exception-2005 other_urls: diff --git a/src/licensedcode/data/licenses/gstreamer-exception-2008.yml b/src/licensedcode/data/licenses/gstreamer-exception-2008.yml index 0c381613605..4ee63813767 100644 --- a/src/licensedcode/data/licenses/gstreamer-exception-2008.yml +++ b/src/licensedcode/data/licenses/gstreamer-exception-2008.yml @@ -2,7 +2,7 @@ key: gstreamer-exception-2008 short_name: GStreamer Exception (2008) name: GStreamer Exception (2008) category: Permissive -owner: Unspecified +owner: GStreamer Project is_exception: yes spdx_license_key: GStreamer-exception-2008 other_urls: diff --git a/src/licensedcode/data/licenses/lzma-sdk-9.22.yml b/src/licensedcode/data/licenses/lzma-sdk-9.22.yml index d986add07c1..32c885cc347 100644 --- a/src/licensedcode/data/licenses/lzma-sdk-9.22.yml +++ b/src/licensedcode/data/licenses/lzma-sdk-9.22.yml @@ -1,7 +1,7 @@ key: lzma-sdk-9.22 short_name: LZMA SDK License (versions 9.22 and beyond) name: LZMA SDK License (versions 9.22 and beyond) -category: Permissive +category: Public Domain owner: Igor Pavlov spdx_license_key: LZMA-SDK-9.22 other_urls: diff --git a/src/licensedcode/data/licenses/ms-lpl.yml b/src/licensedcode/data/licenses/ms-lpl.yml index b91cd9fa8f7..504099d7ae0 100644 --- a/src/licensedcode/data/licenses/ms-lpl.yml +++ b/src/licensedcode/data/licenses/ms-lpl.yml @@ -1,6 +1,6 @@ key: ms-lpl short_name: MS-LPL -name: Microsoft Limited Public License +name: Microsoft Limited Permissive License (MS-LPL) category: Permissive owner: Microsoft homepage_url: http://web.archive.org/web/20061122070300/http://www.microsoft.com/resources/sharedsource/licensingbasics/limitedpermissivelicense.mspx diff --git a/src/licensedcode/data/licenses/ms-net-library-2016-05.yml b/src/licensedcode/data/licenses/ms-net-library-2016-05.yml index 4a787939b19..9fa344eca5a 100644 --- a/src/licensedcode/data/licenses/ms-net-library-2016-05.yml +++ b/src/licensedcode/data/licenses/ms-net-library-2016-05.yml @@ -7,6 +7,9 @@ homepage_url: http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm notes: this is the version that existed at http://www.microsoft.com/net/dotnet_library_license.htm from May 2016. It also existed as this URL in NuGet http://go.microsoft.com/fwlink/?LinkId=329770 spdx_license_key: LicenseRef-scancode-ms-net-library-2016-05 +other_urls: + - http://go.microsoft.com/fwlink/?LinkId=329770 + - http://www.microsoft.com/net/dotnet_library_license.htm ignorable_urls: - - http://www.microsoft.com/exporting - http://go.microsoft.com/fwlink/?LinkId=528096 + - http://www.microsoft.com/exporting diff --git a/src/licensedcode/data/licenses/python-2.0.1.yml b/src/licensedcode/data/licenses/python-2.0.1.yml index bff8d4bf53e..dc31927ed00 100644 --- a/src/licensedcode/data/licenses/python-2.0.1.yml +++ b/src/licensedcode/data/licenses/python-2.0.1.yml @@ -8,6 +8,7 @@ spdx_license_key: Python-2.0.1 other_urls: - https://docs.python.org/3/license.html - https://github.com/python/cpython/blob/main/LICENSE + - https://www.python.org/download/releases/2.0.1/license/ ignorable_copyrights: - Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands - Copyright (c) 1995-2001 Corporation for National Research Initiatives From 2f18c1e96ecb26d86307f2eb2c2a0136a47cc57f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:52:59 +0200 Subject: [PATCH 19/54] Add new licenses Contributed-by: Dennis Clark Signed-off-by: Philippe Ombredanne --- .../licenses/microchip-products-2018.LICENSE | 19 ++++++++ .../data/licenses/microchip-products-2018.yml | 6 +++ .../licenses/smsc-non-commercial-2012.LICENSE | 14 ++++++ .../licenses/smsc-non-commercial-2012.yml | 6 +++ .../data/licenses/woodruff-2002.LICENSE | 46 +++++++++++++++++++ .../data/licenses/woodruff-2002.yml | 9 ++++ 6 files changed, 100 insertions(+) create mode 100644 src/licensedcode/data/licenses/microchip-products-2018.LICENSE create mode 100644 src/licensedcode/data/licenses/microchip-products-2018.yml create mode 100644 src/licensedcode/data/licenses/smsc-non-commercial-2012.LICENSE create mode 100644 src/licensedcode/data/licenses/smsc-non-commercial-2012.yml create mode 100644 src/licensedcode/data/licenses/woodruff-2002.LICENSE create mode 100644 src/licensedcode/data/licenses/woodruff-2002.yml diff --git a/src/licensedcode/data/licenses/microchip-products-2018.LICENSE b/src/licensedcode/data/licenses/microchip-products-2018.LICENSE new file mode 100644 index 00000000000..996cb1925bd --- /dev/null +++ b/src/licensedcode/data/licenses/microchip-products-2018.LICENSE @@ -0,0 +1,19 @@ +/*------------------------------------------------------------------------------------------------*/ +/* (c) 2018 Microchip Technology Inc. and its subsidiaries. */ +/* */ +/* You may use this software and any derivatives exclusively with Microchip products. */ +/* */ +/* THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR */ +/* STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, */ +/* MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP */ +/* PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. */ +/* */ +/* IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR */ +/* CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE SOFTWARE, */ +/* HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE */ +/* FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS */ +/* IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE */ +/* PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. */ +/* */ +/* MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE TERMS. */ +/*------------------------------------------------------------------------------------------------*/ \ No newline at end of file diff --git a/src/licensedcode/data/licenses/microchip-products-2018.yml b/src/licensedcode/data/licenses/microchip-products-2018.yml new file mode 100644 index 00000000000..642d00caefa --- /dev/null +++ b/src/licensedcode/data/licenses/microchip-products-2018.yml @@ -0,0 +1,6 @@ +key: microchip-products-2018 +short_name: Microchip Products 2018 +name: Microchip Technology Products 2018 +category: Proprietary Free +owner: Microchip +spdx_license_key: LicenseRef-scancode-microchip-products-2018 diff --git a/src/licensedcode/data/licenses/smsc-non-commercial-2012.LICENSE b/src/licensedcode/data/licenses/smsc-non-commercial-2012.LICENSE new file mode 100644 index 00000000000..03b2cb955d5 --- /dev/null +++ b/src/licensedcode/data/licenses/smsc-non-commercial-2012.LICENSE @@ -0,0 +1,14 @@ +Copyright 2012 SMSC + +THIS SOFTWARE PROVIDED BY STANDARD MICROSYSTEMS CORPORATION`("SMSC")IS SAMPLE +CODE INTENDED FOR EVALUATION PURPOSES ONLY. IT IS NOT INTENDED FOR COMMERCIAL +USE. THIS SOFTWARE IS PROVIDED BY SMSC "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 EXPRESSLY AND +SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL SMSC 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/smsc-non-commercial-2012.yml b/src/licensedcode/data/licenses/smsc-non-commercial-2012.yml new file mode 100644 index 00000000000..b11a5a28d08 --- /dev/null +++ b/src/licensedcode/data/licenses/smsc-non-commercial-2012.yml @@ -0,0 +1,6 @@ +key: smsc-non-commercial-2012 +short_name: SMSC Non-Commercial 2012 +name: SMSC Non-Commercial 2012 +category: Proprietary Free +owner: Microchip +spdx_license_key: LicenseRef-scancode-smsc-non-commercial-2012 diff --git a/src/licensedcode/data/licenses/woodruff-2002.LICENSE b/src/licensedcode/data/licenses/woodruff-2002.LICENSE new file mode 100644 index 00000000000..168c6012509 --- /dev/null +++ b/src/licensedcode/data/licenses/woodruff-2002.LICENSE @@ -0,0 +1,46 @@ +The MIT License (MIT) with restrictions + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +The following terms additionally apply and override any above terms for +applicable parties: + +You may not use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software in a military or law enforcement context, +defined as follows: + +1. A military context is a professional context where the intended application +of the Software is integration or use with or by military software, tools +(software or hardware), or personnel. This includes contractors and +subcontractors as well as research affiliates of any military organization. + +2. A law enforcement context is a professional context where the intended +application of the Software is integration or use with or by law enforcement +software, tools (software or hardware), or personnel. This includes +contractors and subcontractors as well as research affiliates of any law +enforcement organization. + +Entities that sell or license to military or law enforcement organizations +may use the Software under the original terms, but only in contexts that do +not assist or supplement the sold or licensed product. + +Students and academics who are affiliated with research institutions may use +the Software under the original terms, but only in contexts that do not assist +or supplement collaboration or affiliation with any military or law +enforcement organization. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/woodruff-2002.yml b/src/licensedcode/data/licenses/woodruff-2002.yml new file mode 100644 index 00000000000..ff783136ce3 --- /dev/null +++ b/src/licensedcode/data/licenses/woodruff-2002.yml @@ -0,0 +1,9 @@ +key: woodruff-2002 +short_name: Woodruff Restricted MIT 2002 +name: Woodruff Restricted MIT 2002 +category: Free Restricted +owner: William Woodruff +homepage_url: https://github.com/woodruffw/ff2mpv/blob/master/LICENSE +spdx_license_key: LicenseRef-scancode-woodruff-2002 +other_urls: + - https://github.com/search?p=2&q="The+MIT+License+(MIT)+with+restrictions"&type=Code From c9ca9383f621d781d98ca833e9fcc355176ab3d5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:53:35 +0200 Subject: [PATCH 20/54] Improve "gibberish" license matches filter Signed-off-by: Philippe Ombredanne --- src/licensedcode/match.py | 132 ++++++++++++++++++++++++++------------ 1 file changed, 90 insertions(+), 42 deletions(-) diff --git a/src/licensedcode/match.py b/src/licensedcode/match.py index bf7b944ddd5..df3afc80c62 100644 --- a/src/licensedcode/match.py +++ b/src/licensedcode/match.py @@ -1793,12 +1793,16 @@ def filter_invalid_matches_to_single_word_gibberish( 'rule_text:', repr(rule_text) ) - if rule.relevance >= 75: + if rule.relevance >= 80: max_diff = 1 else: max_diff = 0 - if is_invalid_short_match(matched_text, rule_text, max_diff=max_diff): + if not is_valid_short_match( + matched_text=matched_text, + rule_text=rule_text, + max_diff=max_diff, + ): if trace: logger_debug(' ==> DISCARDING INVALID GIBBERISH:', match) discarded_append(match) @@ -1881,106 +1885,148 @@ def filter_short_matches_scattered_on_too_many_lines( return kept, discarded -def is_invalid_short_match( +def is_valid_short_match( matched_text, rule_text, max_diff=0, trace=TRACE_FILTER_SINGLE_WORD_GIBBERISH, ): """ - Return True if the ``matched_text`` given a ``rule_text`` is invalid. - ``max_diff`` is the maximum length difference between these two texts - considered as OK. + Return True if the match with ``matched_text`` is a valid short match given + a ``rule_text``. + ``max_diff`` is the maximum number of character differences between these + two texts that is considered as acceptable. For example: - >>> is_invalid_short_match("gpl", "GPL") + >>> is_valid_short_match("gpl", "GPL") + True + >>> is_valid_short_match("Gpl", "GPL") + True + >>> is_valid_short_match("gPl", "GPL") False - >>> is_invalid_short_match("Gpl", "GPL") + >>> is_valid_short_match("GPL[", "GPL") False - >>> is_invalid_short_match("gPl", "GPL") - True - >>> is_invalid_short_match("GPL[", "GPL") + >>> is_valid_short_match("~gpl", "GPL") + False + >>> is_valid_short_match("GPL", "gpl") True - >>> is_invalid_short_match("~gpl", "GPL") + >>> is_valid_short_match("Gpl+", "gpl+") True - >>> is_invalid_short_match("GPL", "gpl") + >>> is_valid_short_match("~gpl", "GPL", max_diff=0) False - >>> is_invalid_short_match("Gpl+", "gpl+") - False - >>> is_invalid_short_match("~gpl", "GPL", max_diff=0) + >>> is_valid_short_match("~gpl", "GPL", max_diff=1) + True + >>> is_valid_short_match("ALv2@", "ALv2", max_diff=1) True - >>> is_invalid_short_match("~gpl", "GPL", max_diff=1) + >>> is_valid_short_match("aLv2@", "ALv2", max_diff=1) False - >>> is_invalid_short_match("ALv2@", "ALv2", max_diff=1) + >>> is_valid_short_match("alv2@", "ALv2", max_diff=1) + True + >>> is_valid_short_match("GPLv2@", "GPLv2") + True + >>> is_valid_short_match("LGPL2@", "LGPL2") + True + >>> is_valid_short_match("gpl) &", "GPL") False - >>> is_invalid_short_match("aLv2@", "ALv2", max_diff=1) + >>> is_valid_short_match("GPLv2(", "GPLv2") True - >>> is_invalid_short_match("alv2@", "ALv2", max_diff=1) + >>> is_valid_short_match("GPLv2", "GPLv2") + True + >>> is_valid_short_match("GPLV2+", "GPLv2+") + True + >>> is_valid_short_match("gplv2+", "GPLv2+") + True + >>> is_valid_short_match("LGPLV2+", "LGPLv2+") + True + >>> is_valid_short_match("LgplV2+", "LGPLv2+") + True + >>> is_valid_short_match("Cc0(", "CC0") False - >>> is_invalid_short_match("gpl) &", "GPL") + >>> is_valid_short_match("CC0", "CC0") True - >>> is_invalid_short_match("GPLv2(", "GPLv2") + >>> is_valid_short_match("Cc0", "CC0") True + >>> is_valid_short_match("COPYINGv3", "COPYINGV3") + True + >>> is_valid_short_match("MpL2", "MPL2") + False + >>> is_valid_short_match('WJa2!n"n#n$n;F#Cc0(n', "CC0") + False + """ if trace: logger_debug( - '==> is_invalid_short_match:', + '==> is_valid_short_match:', 'matched_text:', repr(matched_text), 'rule_text:', repr(rule_text), 'max_diff:', max_diff, ) if matched_text == rule_text: - return False + return True + + # For long enough rules (length in characters), we consider all matches to + # be correct + len_rule_text = len(rule_text) + if len_rule_text >= 5: + return True # Length differences help decide that this is invalid as the extra chars # will be punctuation by construction - diff = len(matched_text) - len(rule_text) + diff = len(matched_text) - len_rule_text if diff and diff != max_diff: if trace: logger_debug( - ' ==> is_invalid_short_match:', 'diff:', diff, + ' ==> is_valid_short_match:', 'diff:', diff, 'max_diff:', max_diff) - return True + return False if rule_text.endswith('+'): matched_text = matched_text.rstrip('+') rule_text = rule_text.rstrip('+') # Same length, do we have mixed case? or title case? - # same case and title case are OK, mixed case not OK. + # All of same case and title case are OK, mixed case not OK. is_title_case = matched_text.istitle() if is_title_case: if trace: logger_debug( - ' ==> is_invalid_short_match:', + ' ==> is_valid_short_match:', 'is_title_case:', 'matched_text:', matched_text) - return False - - contains_rule = rule_text in matched_text + return True - is_same_case = ( + is_same_case_for_all_chars = ( matched_text.lower() == matched_text or matched_text.upper() == matched_text ) - if is_same_case or contains_rule: + if is_same_case_for_all_chars: if trace: logger_debug( - ' ==> is_invalid_short_match:', - 'not is_same_case or contains_rule:', + ' ==> is_valid_short_match:', + 'is_same_case_for_all_chars:', 'matched_text:', matched_text, 'rule_text:', rule_text) - return False + return True + + matched_text_contains_full_rule_text = rule_text in matched_text + if matched_text_contains_full_rule_text: + if trace: + logger_debug( + ' ==> is_valid_short_match:', + 'matched_text_contains_full_rule_text:', + 'matched_text:', matched_text, 'rule_text:', rule_text) + + return True if trace: - logger_debug(' ==> is_invalid_short_match:', 'INVALID', matched_text) + logger_debug(' ==> is_valid_short_match:', 'INVALID', matched_text) - return True + return False def filter_false_positive_matches( @@ -2023,12 +2069,14 @@ def filter_matches_missing_key_phrases( rule. A key phrase must be matched exactly without gaps or unknown words. - A rule with "is_continuous" set to True is the same as if it's whole text + A rule with "is_continuous" set to True is the same as if its whole text was defined as a keyphrase and is processed here too. """ - # never discard a solo match + # never discard a solo match, unless matched to "is_continuous" rule if len(matches) == 1: - return matches, [] + rule = matches[0] + if not rule.is_continuous: + return matches, [] kept = [] kept_append = kept.append From 941e4a84b00d4cb970cd28f981b1f6ef5c15b60e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:53:55 +0200 Subject: [PATCH 21/54] Update synclic with latest models update Signed-off-by: Philippe Ombredanne --- etc/scripts/licenses/synclic.py | 143 +++++++++++++++++--------------- 1 file changed, 74 insertions(+), 69 deletions(-) diff --git a/etc/scripts/licenses/synclic.py b/etc/scripts/licenses/synclic.py index 5cb517313c5..14ec5137392 100644 --- a/etc/scripts/licenses/synclic.py +++ b/etc/scripts/licenses/synclic.py @@ -8,7 +8,6 @@ # See https://aboutcode.org for more information about nexB OSS projects. # -import io import json import os import textwrap @@ -40,9 +39,8 @@ Run python synclic.py -h for help. """ -TRACE = True -TRACE_ADD = True -TRACE_FETCH = True +TRACE = False +TRACE_ADD = False TRACE_DEEP = False # may be useful to change for testing @@ -73,7 +71,7 @@ def clean(self): if updated: models.update_ignorables(lic, verbose=False) - lic.dump() + lic.dump(licenses_data_dir=licensedcode.models.licenses_data_dir) class ExternalLicensesSource: @@ -137,13 +135,13 @@ def get_licenses( print("Fetching and storing external licenses in:", self.original_dir) licenses = [] - if TRACE: + if TRACE_DEEP: print() - for lic, text in self.fetch_licenses( + for lic in self.fetch_licenses( scancode_licenses=scancode_licenses, **kwargs, ): - if TRACE: + if TRACE_DEEP: start = time.time() try: @@ -154,7 +152,7 @@ def get_licenses( print() print(repr(lic)) raise - if TRACE: + if TRACE_DEEP: print( f" Saving fetched license: {lic.key} in :", round(time.time() - start, 1), @@ -178,8 +176,7 @@ def get_licenses( def fetch_licenses(self, scancode_licenses, **kwargs): """ - Yield tuples of (License object, license text) fetched - from this external source. + Yield License objects fetched from this external source. """ raise NotImplementedError @@ -281,7 +278,7 @@ def get_response(url, headers, params): request at `url` with `headers` and `params`. """ - if TRACE_FETCH: + if TRACE: print("==> Fetching URL: %(url)s" % locals()) response = requests.get(url, headers=headers, params=params) status = response.status_code @@ -335,10 +332,10 @@ def fetch_licenses( from_repo=SPDX_DEFAULT_REPO, ): """ - Yield tuples of (License object, license text) fetched - from the latest SPDX license list. Use the latest tagged version or the - `commitish` if provided. If ``skip_oddities`` is True, some oddities are - skipped or handled specially, such as licenses with a trailing +. + Yield License objects fetched from the latest SPDX license list. Use the + latest tagged version or the `commitish` if provided. If + ``skip_oddities`` is True, some oddities are skipped or handled + specially, such as licenses with a trailing +. """ for spdx_details in self.fetch_spdx_licenses( commitish=commitish, @@ -346,14 +343,14 @@ def fetch_licenses( from_repo=from_repo, ): - lic_txt = self.build_license( + lic = self.build_license( mapping=spdx_details, scancode_licenses=scancode_licenses, skip_oddities=skip_oddities, ) - if lic_txt: - yield lic_txt + if lic: + yield lic def fetch_spdx_licenses( self, @@ -379,10 +376,10 @@ def fetch_spdx_licenses( # fetch licenses and exceptions # note that exceptions data have -- weirdly enough -- a different schema zip_url = "https://github.com/{from_repo}/archive/{tag}.zip".format(**locals()) - if TRACE_FETCH: + if TRACE: print("Fetching SPDX license data version:", tag, "from:", zip_url) licenses_zip = fetch.download_url(zip_url, timeout=120) - if TRACE_FETCH: + if TRACE: print("Fetched SPDX licenses to:", licenses_zip) with zipfile.ZipFile(licenses_zip) as archive: for path in archive.namelist(): @@ -391,7 +388,7 @@ def fetch_spdx_licenses( and ("/json/details/" in path or "/json/exceptions/" in path) ): continue - if TRACE_FETCH: + if TRACE: print("Loading license:", path) if skip_oddities and path.endswith("+.json"): # Skip the old plus licenses. We use them in @@ -401,9 +398,9 @@ def fetch_spdx_licenses( def build_license(self, mapping, skip_oddities=True, scancode_licenses=None): """ - Return a tuple of (License object, license text) built - from an SPDX license mapping. If skip_oddities is True, some oddities - are skipped or handled specially, such as licenses with a trailing +. + Return a License object built from a ``mapping`` of SPDX license data. + If ``skip_oddities`` is True, some oddities are skipped or handled + specially, such as license ids with a trailing +. """ spdx_license_key = mapping.get("licenseId") or mapping.get("licenseExceptionId") assert spdx_license_key @@ -445,26 +442,26 @@ def build_license(self, mapping, skip_oddities=True, scancode_licenses=None): # 'agpl-3.0+' deprecated = False - # TODO: handle other_spdx_license_keys in license yaml files. - other_urls = mapping.get("seeAlso", []) other_urls = (o for o in other_urls if o) other_urls = (o.strip() for o in other_urls) other_urls = (o for o in other_urls if o) # see https://github.com/spdx/license-list-data/issues/9 junk_see_also = ("none", "found") - other_urls = (o for o in other_urls if o not in junk_see_also) - - other_urls = list(other_urls) + other_urls = [o for o in other_urls if o not in junk_see_also] standard_notice = mapping.get("standardLicenseHeader") or "" if standard_notice: standard_notice = clean_text(standard_notice) + text = (mapping.get("licenseText") or mapping.get("licenseExceptionText")).strip() + if not text: + raise Exception(f"Missing text fpr SPDX {spdx_license_key}") + lic = License( key=key, - src_dir=self.original_dir, spdx_license_key=spdx_license_key, + text=text, name=mapping["name"].strip(), short_name=mapping["name"].strip(), is_deprecated=deprecated, @@ -483,10 +480,7 @@ def build_license(self, mapping, skip_oddities=True, scancode_licenses=None): # exception_example # example = mapping.get('example') ) - text = mapping.get("licenseText") or mapping.get("licenseExceptionText") - text = text.strip() - return lic, text - + return lic # these licenses are rare commercial license with no text and only a # link or these licenses may be combos of many others or are ignored @@ -549,9 +543,9 @@ def fetch_licenses(self, scancode_licenses, per_page=100, max_fetch=None, **kwar license_data = self.filter_license_data(license_data, scancode_licenses) for lic_data in license_data: - lic_txt = self.build_license(mapping=lic_data) - if lic_txt: - yield lic_txt + lic = self.build_license(mapping=lic_data) + if lic: + yield lic def fetch_license_data(self, per_page=100, max_fetch=None, **kwargs): """ @@ -593,8 +587,8 @@ def filter_license_data(self, license_data, scancode_licenses, skip_oddities=Tru def build_license(self, mapping, *args, **kwargs): """ - Return a tuple of (License object, license text) built - from a DejaCode license mapping or None for skipped licenses. + Return a License object built from a DejaCode license mapping or None + for skipped licenses. """ key = mapping["key"] @@ -611,9 +605,13 @@ def build_license(self, mapping, *args, **kwargs): if not spdx_license_key: spdx_license_key = f"LicenseRef-scancode-{key}" + text = mapping["full_text"] or "" + # normalize EOL to POSIX + text = text.replace("\r\n", "\n").strip() + lic = License( key=key, - src_dir=self.original_dir, + text=text, name=mapping["name"], short_name=mapping["short_name"], language=mapping.get("language") or "en", @@ -632,10 +630,7 @@ def build_license(self, mapping, *args, **kwargs): standard_notice=standard_notice, # notes=notes, ) - text = mapping["full_text"] or "" - # normalize EOL to POSIX - text = text.replace("\r\n", "\n").strip() - return lic, text + return lic def check_owners(self, licenses): """ @@ -744,7 +739,7 @@ def create_or_update_license(api_url, api_key, lico, update=False): ``api_key``. Raise an exception on failure. Create license if needed. Update existing with a PATCH request if ``update`` is True. """ - owner = get_or_create_owner(api_url, api_key, lico.owner, create=True) + _owner = get_or_create_owner(api_url, api_key, lico.owner, create=True) url = f"{api_url}/licenses/" headers = get_api_headers(api_key) @@ -905,7 +900,7 @@ def license_to_dict(lico): faq_url=lico.faq_url, other_urls="\n".join(lico.other_urls or []), ) - return {k: v for k, v in licm.items() if v} + return {k: v for k, v in sorted(licm.items()) if v} def add_license_creation_fields(license_mapping): @@ -945,7 +940,7 @@ def merge_licenses( matching. In this case, the key that is used is that from the ScanCode license. """ - if TRACE: + if TRACE_DEEP: print("merge_licenses:", scancode_license, external_license) updated_scancode_attributes = [] @@ -979,7 +974,7 @@ def update_external(_attrib, _sc_val, _ext_val): ) if scancode_license.spdx_license_key != external_license.spdx_license_key: - if TRACE: + if TRACE_DEEP: print( f"Updating external SPDX key: from {external_license.spdx_license_key} to {scancode_license.spdx_license_key}" ) @@ -1008,9 +1003,9 @@ def update_external(_attrib, _sc_val, _ext_val): ): all_sc_urls = set( list(normalized_scancode_value) - + scancode_license.text_urls - + scancode_license.other_urls - + [ + +scancode_license.text_urls + +scancode_license.other_urls + +[ scancode_license.homepage_url, scancode_license.osi_url, scancode_license.faq_url, @@ -1119,19 +1114,21 @@ def synchronize_licenses( """ if TRACE: - print("synchronize_licenses using SPDX keys:", use_spdx_key) + print("Synchronize_licenses using SPDX keys:", use_spdx_key) # mappings of key -> License scancodes_by_key = scancode_licenses.by_key - if TRACE: + if TRACE_DEEP: start = time.time() + externals_by_key = external_source.get_licenses( scancode_licenses, commitish=commitish, ) - if TRACE: - print("Fetched all externals_by_key licenses in :", int(time.time() - start)) + + if TRACE_DEEP: + print("Fetched all externals_by_key licenses in:", int(time.time() - start)) if use_spdx_key: scancodes_by_key = scancode_licenses.by_spdx_key @@ -1152,7 +1149,7 @@ def synchronize_licenses( # removed = set() # 1. iterate scancode licenses and compare with other - for matching_key, scancode_license in scancodes_by_key.items(): + for matching_key, scancode_license in sorted(scancodes_by_key.items()): if not TRACE: print(".", end="") @@ -1207,7 +1204,7 @@ def synchronize_licenses( # 2. iterate other licenses and compare with ScanCode if TRACE: print() - for matching_key, external_license in externals_by_key.items(): + for matching_key, external_license in sorted(externals_by_key.items()): # does this key exists in scancode? scancode_license = scancodes_by_key.get(matching_key) if scancode_license: @@ -1288,8 +1285,9 @@ def synchronize_licenses( else: # Create a new ScanCode license - scancode_license = external_license.relocate( - licensedcode.models.licenses_data_dir, matching_key + external_license.key = matching_key + scancode_license = external_license.dump( + licenses_data_dir=licensedcode.models.licenses_data_dir ) added_to_scancode.add(matching_key) scancodes_by_key[matching_key] = scancode_license @@ -1306,7 +1304,8 @@ def synchronize_licenses( if TRACE: print() print("Processing unmatched_scancode_by_key.") - for lkey, scancode_license in unmatched_scancode_by_key.items(): + + for lkey, scancode_license in sorted(unmatched_scancode_by_key.items()): if lkey in set( [ "here-proprietary" @@ -1320,21 +1319,27 @@ def synchronize_licenses( if scancode_license.is_deprecated: continue - external_license = scancode_license.relocate(external_source.new_dir) + + external_license = scancode_license.dump(licenses_data_dir=external_source.new_dir) added_to_external.add(lkey) externals_by_key[lkey] = external_license + if TRACE_DEEP: print("ScanCode license key not in External:", lkey, "created in External.") # finally write changes in place for updated and new - for k in updated_in_scancode | added_to_scancode: + for k in sorted(updated_in_scancode | added_to_scancode): lic = scancodes_by_key[k] + if not lic: + raise Exception(k) models.update_ignorables(lic, verbose=False) - lic.dump() + lic.dump(licenses_data_dir=licensedcode.models.licenses_data_dir) - for k in updated_in_external | added_to_external: + for k in sorted(updated_in_external | added_to_external): lic = externals_by_key[k] - lic.dump() + if not lic: + raise Exception(f"Failed to process added or updated license: {k}") + lic.dump(licenses_data_dir=licensedcode.models.licenses_data_dir) # TODO: at last: print report of incorrect OTHER licenses to submit # updates eg. make API calls to DejaCode to create or update @@ -1357,7 +1362,7 @@ def synchronize_licenses( added_to_external = [externals_by_key[k] for k in added_to_external] updated_in_external = [externals_by_key[k] for k in updated_in_external] external_source.externals_by_key = externals_by_key - return added_to_external, updated_in_external + return sorted(added_to_external), sorted(updated_in_external) @click.command() @@ -1444,7 +1449,7 @@ def cli( if create_external: api_url = external_source.api_base_url api_key = external_source.api_key - for i, new_lic in enumerate(added_to_external): + for new_lic in added_to_external: if new_lic.key in dejacode_special_skippable_keys: continue if TRACE: @@ -1453,7 +1458,7 @@ def cli( if update_external: externals_by_key = external_source.externals_by_key - for i, modified_lic in enumerate(updated_in_external): + for modified_lic in updated_in_external: if modified_lic.key in dejacode_special_skippable_keys: continue mold = license_to_dict(modified_lic) From 2590e63c8f924e674169f0f4a23a1b9ecf20dc6e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Mon, 12 Sep 2022 23:58:52 +0200 Subject: [PATCH 22/54] Update URL Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/licenses/nicta-psl.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/licensedcode/data/licenses/nicta-psl.yml b/src/licensedcode/data/licenses/nicta-psl.yml index 7b19ecbb98d..d7a83640ec0 100644 --- a/src/licensedcode/data/licenses/nicta-psl.yml +++ b/src/licensedcode/data/licenses/nicta-psl.yml @@ -11,6 +11,7 @@ text_urls: - http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-320.10/mDNSPosix/nss_ReadMe.txt other_urls: - http://www.nicta.com.au/ + - https://opensource.apple.com/source/mDNSResponder/mDNSResponder-320.10/mDNSPosix/nss_ReadMe.txt ignorable_copyrights: - Copyright (c) 2004 National ICT Australia Ltd ignorable_holders: From 96e354e41879b0411fc716c48a3aec49697846d9 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 13 Sep 2022 09:09:50 +0200 Subject: [PATCH 23/54] Enable caching in synclic with --use-cache Signed-off-by: Philippe Ombredanne --- etc/scripts/licenses/synclic.py | 108 +++++++++++++++++++------------- src/licensedcode/models.py | 2 + 2 files changed, 67 insertions(+), 43 deletions(-) diff --git a/etc/scripts/licenses/synclic.py b/etc/scripts/licenses/synclic.py index 14ec5137392..22f68efa215 100644 --- a/etc/scripts/licenses/synclic.py +++ b/etc/scripts/licenses/synclic.py @@ -110,68 +110,72 @@ def __init__(self, external_base_dir=None): # we store new external licenses in this directory self.new_dir = os.path.join(external_base_dir, "new") - self.fetched = False - if exists(self.original_dir): - # fetch ONLY if the directory is non-existing - self.fetched = True - else: + if not exists(self.original_dir): mkdir(self.original_dir) - if not exists(self.update_dir): - mkdir(self.update_dir) + # always cleanup updated and new + if exists(self.update_dir): + fileutils.delete(self.update_dir) + mkdir(self.update_dir) - if not exists(self.new_dir): - mkdir(self.new_dir) + if exists(self.new_dir): + fileutils.delete(self.new_dir) + mkdir(self.new_dir) def get_licenses( self, scancode_licenses=None, + use_cache=False, **kwargs, ): """ Return a mapping of key -> ScanCode License objects either fetched externally or loaded from the existing `self.original_dir` + If ``force_refetch`` the licenses are always refected. Otherwise if + `self.original_dir` exists, they are loaded from there. """ - print("Fetching and storing external licenses in:", self.original_dir) + if not use_cache: + print("Fetching and storing external licenses in:", self.original_dir) - licenses = [] - if TRACE_DEEP: - print() - for lic in self.fetch_licenses( - scancode_licenses=scancode_licenses, - **kwargs, - ): + licenses = [] if TRACE_DEEP: - start = time.time() + print() + for lic in self.fetch_licenses( + scancode_licenses=scancode_licenses, + **kwargs, + ): + if TRACE_DEEP: + start = time.time() - try: - lic.dump(licenses_data_dir=self.original_dir) - licenses.append(lic) - except: - if TRACE: - print() - print(repr(lic)) - raise - if TRACE_DEEP: - print( - f" Saving fetched license: {lic.key} in :", - round(time.time() - start, 1), - "s", - ) + try: + lic.dump(licenses_data_dir=self.original_dir) + licenses.append(lic) + except: + if TRACE: + print() + print(repr(lic)) + raise + if TRACE_DEEP: + print( + f" Saving fetched license: {lic.key} in :", + round(time.time() - start, 1), + "s", + ) - print( - "Stored %d external licenses in: %r." - % ( - len(licenses), - self.original_dir, + print( + "Stored %d external licenses in: %r." + % ( + len(licenses), + self.original_dir, + ) ) - ) + else: + print("Reusing and loading external licenses in:", self.original_dir) print(f"Modified (or not modified) external licenses will be in: {self.update_dir}.") fileutils.copytree(self.original_dir, self.update_dir) print(f"New external licenses will be in: {self.new_dir}.") - return load_licenses(self.update_dir, with_deprecated=True) def fetch_licenses(self, scancode_licenses, **kwargs): @@ -293,7 +297,7 @@ def clean_text(text): """ if not text: return text - text = text.strip() + text = text.rstrip() lines = text.splitlines(False) formatted = [] for line in lines: @@ -482,6 +486,7 @@ def build_license(self, mapping, skip_oddities=True, scancode_licenses=None): ) return lic + # these licenses are rare commercial license with no text and only a # link or these licenses may be combos of many others or are ignored # because of some weirdness we detect instead each part of the combos @@ -1003,9 +1008,9 @@ def update_external(_attrib, _sc_val, _ext_val): ): all_sc_urls = set( list(normalized_scancode_value) - +scancode_license.text_urls - +scancode_license.other_urls - +[ + + scancode_license.text_urls + + scancode_license.other_urls + + [ scancode_license.homepage_url, scancode_license.osi_url, scancode_license.faq_url, @@ -1078,6 +1083,7 @@ def synchronize_licenses( match_text=False, match_approx=False, commitish=None, + use_cache=False, ): """ Return a tuple of lists of License objects: @@ -1125,6 +1131,7 @@ def synchronize_licenses( externals_by_key = external_source.get_licenses( scancode_licenses, commitish=commitish, + use_cache=use_cache, ) if TRACE_DEEP: @@ -1335,6 +1342,13 @@ def synchronize_licenses( models.update_ignorables(lic, verbose=False) lic.dump(licenses_data_dir=licensedcode.models.licenses_data_dir) + if TRACE_DEEP: + print( + "updated_in_external:", + len(updated_in_external), + "added_to_external:", + len(added_to_external), + ) for k in sorted(updated_in_external | added_to_external): lic = externals_by_key[k] if not lic: @@ -1406,6 +1420,12 @@ def synchronize_licenses( default=None, help="An optional commitish to use for SPDX license data instead of the latest release.", ) +@click.option( + "--use-cache", + is_flag=True, + default=False, + help="Use cached data, do not re-fetch external licenses. Instead, reuse previously fetched external licenses if available.", +) @click.help_option("-h", "--help") def cli( license_dir, @@ -1416,6 +1436,7 @@ def cli( create_external, update_external, commitish=None, + use_cache=False, ): """ Synchronize ScanCode licenses with an external license source. @@ -1443,6 +1464,7 @@ def cli( match_text=match_text, match_approx=match_approx, commitish=commitish, + use_cache=use_cache, ) print() if source == "dejacode": diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 321ae77525c..0ee61a62c73 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -436,6 +436,8 @@ def write(location, byte_string): if text: write(self.text_file(licenses_data_dir=licenses_data_dir), text.encode('utf-8')) + return self + def load(self, data_file, text_file): """ Populate license data from a YAML file stored in ``data_file`` and ``text_file``. From 5471789dbf7a621eb0e8e25080c78335ba040989 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 13 Sep 2022 09:10:42 +0200 Subject: [PATCH 24/54] Revert commit of test files Signed-off-by: Philippe Ombredanne --- foo.html | 35 ----------------------------------- ht.py | 7 ------- sample.license.txt | 27 --------------------------- 3 files changed, 69 deletions(-) delete mode 100644 foo.html delete mode 100644 ht.py delete mode 100644 sample.license.txt diff --git a/foo.html b/foo.html deleted file mode 100644 index e8b8742aa73..00000000000 --- a/foo.html +++ /dev/null @@ -1,35 +0,0 @@ - - -
Copyright (c) Django Software Foundation and individual contributors.
-All rights reserved.
-
-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.
-
-    2. Redistributions in binary form must reproduce the above copyright
-       notice, this list of FOOBAR conditions and the following disclaimer in the
-       documentation and/or other materials provided with the distribution.
-
-    3. Neither the name of Django nor the names of its contributors may be used
-       to endorse or promote products derived from this software without
-       specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT OWNER OR CONTRIBUTORS 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.
-
diff --git a/ht.py b/ht.py deleted file mode 100644 index b17b60d5764..00000000000 --- a/ht.py +++ /dev/null @@ -1,7 +0,0 @@ -from licensedcode.cache import get_index -idx = get_index() -file= "sample.license.txt" -matches = idx.match(location=file) -for match in matches: - ht = match.get_highlighted_text() - print(ht) diff --git a/sample.license.txt b/sample.license.txt deleted file mode 100644 index 3c980b50614..00000000000 --- a/sample.license.txt +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) Django Software Foundation and individual contributors. -All rights reserved. - -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. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of FOOBAR conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of Django nor the names of its contributors may be used - to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT OWNER OR CONTRIBUTORS 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. From 673ee91015326ba110d3c84b633f411a21b4b0df Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 14 Sep 2022 00:52:56 +0200 Subject: [PATCH 25/54] Add new license detection rules Signed-off-by: Philippe Ombredanne --- .../data/rules/apache-2.0_1142.RULE | 1 + .../data/rules/apache-2.0_1142.yml | 5 ++ .../data/rules/apache-2.0_1143.RULE | 1 + .../data/rules/apache-2.0_1143.yml | 5 ++ src/licensedcode/data/rules/bsd-new_1192.RULE | 3 ++ src/licensedcode/data/rules/bsd-new_1192.yml | 5 ++ src/licensedcode/data/rules/bsd-new_1193.RULE | 2 + src/licensedcode/data/rules/bsd-new_1193.yml | 5 ++ .../data/rules/false-positive_190.RULE | 2 + .../data/rules/false-positive_190.yml | 2 + .../data/rules/false-positive_192.RULE | 1 + .../data/rules/false-positive_192.yml | 2 + .../data/rules/false-positive_201.RULE | 1 + .../data/rules/false-positive_201.yml | 2 + src/licensedcode/data/rules/gpl-2.0_1386.RULE | 2 + src/licensedcode/data/rules/gpl-2.0_1386.yml | 3 ++ src/licensedcode/data/rules/mit_1213.RULE | 1 + src/licensedcode/data/rules/mit_1213.yml | 3 ++ src/licensedcode/data/rules/mit_1214.RULE | 3 ++ src/licensedcode/data/rules/mit_1214.yml | 5 ++ src/licensedcode/data/rules/mit_1215.RULE | 1 + src/licensedcode/data/rules/mit_1215.yml | 5 ++ src/licensedcode/data/rules/mit_1216.RULE | 1 + src/licensedcode/data/rules/mit_1216.yml | 3 ++ src/licensedcode/data/rules/mit_1217.RULE | 1 + src/licensedcode/data/rules/mit_1217.yml | 3 ++ src/licensedcode/data/rules/mit_1218.RULE | 1 + src/licensedcode/data/rules/mit_1218.yml | 3 ++ src/licensedcode/data/rules/mit_1219.RULE | 1 + src/licensedcode/data/rules/mit_1219.yml | 3 ++ src/licensedcode/data/rules/mit_1220.RULE | 1 + src/licensedcode/data/rules/mit_1220.yml | 3 ++ src/licensedcode/data/rules/mit_1221.RULE | 2 + src/licensedcode/data/rules/mit_1221.yml | 5 ++ .../data/rules/mit_and_apache-2.0_7.RULE | 2 + .../data/rules/mit_and_apache-2.0_7.yml | 4 ++ .../data/rules/mit_and_apache-2.0_8.RULE | 1 + .../data/rules/mit_and_apache-2.0_8.yml | 3 ++ .../data/rules/mit_and_apache-2.0_9.RULE | 1 + .../data/rules/mit_and_apache-2.0_9.yml | 3 ++ .../data/rules/mit_and_bsd-simplified_1.RULE | 1 + .../data/rules/mit_and_bsd-simplified_1.yml | 3 ++ .../data/rules/mit_and_bsd-simplified_2.RULE | 1 + .../data/rules/mit_and_bsd-simplified_2.yml | 3 ++ .../data/rules/mit_and_bsd-simplified_3.RULE | 1 + .../data/rules/mit_and_bsd-simplified_3.yml | 3 ++ .../data/rules/mit_and_bsd-simplified_4.RULE | 1 + .../data/rules/mit_and_bsd-simplified_4.yml | 3 ++ .../data/rules/mit_and_bsd-simplified_5.RULE | 1 + .../data/rules/mit_and_bsd-simplified_5.yml | 3 ++ src/licensedcode/data/rules/osl-3.0_44.RULE | 1 + src/licensedcode/data/rules/osl-3.0_44.yml | 2 + src/licensedcode/data/rules/osl-3.0_45.RULE | 47 +++++++++++++++++++ src/licensedcode/data/rules/osl-3.0_45.yml | 6 +++ .../data/rules/proprietary-license_735.RULE | 1 + .../data/rules/proprietary-license_735.yml | 3 ++ .../data/rules/proprietary-license_736.RULE | 1 + .../data/rules/proprietary-license_736.yml | 3 ++ .../data/rules/proprietary-license_737.RULE | 1 + .../data/rules/proprietary-license_737.yml | 3 ++ .../data/rules/proprietary-license_738.RULE | 19 ++++++++ .../data/rules/proprietary-license_738.yml | 2 + .../data/rules/proprietary-license_739.RULE | 26 ++++++++++ .../data/rules/proprietary-license_739.yml | 2 + .../data/rules/proprietary-license_740.RULE | 20 ++++++++ .../data/rules/proprietary-license_740.yml | 2 + .../data/rules/proprietary-license_741.RULE | 20 ++++++++ .../data/rules/proprietary-license_741.yml | 2 + .../data/rules/proprietary-license_742.RULE | 3 ++ .../data/rules/proprietary-license_742.yml | 2 + .../data/rules/proprietary-license_743.RULE | 42 +++++++++++++++++ .../data/rules/proprietary-license_743.yml | 2 + .../data/rules/proprietary-license_744.RULE | 40 ++++++++++++++++ .../data/rules/proprietary-license_744.yml | 2 + .../data/rules/proprietary-license_745.RULE | 22 +++++++++ .../data/rules/proprietary-license_745.yml | 2 + .../data/rules/proprietary-license_746.RULE | 5 ++ .../data/rules/proprietary-license_746.yml | 2 + .../data/rules/proprietary-license_747.RULE | 4 ++ .../data/rules/proprietary-license_747.yml | 2 + .../data/rules/proprietary-license_748.RULE | 1 + .../data/rules/proprietary-license_748.yml | 3 ++ .../data/rules/proprietary-license_749.RULE | 3 ++ .../data/rules/proprietary-license_749.yml | 2 + .../data/rules/proprietary-license_750.RULE | 1 + .../data/rules/proprietary-license_750.yml | 3 ++ .../data/rules/proprietary-license_751.RULE | 1 + .../data/rules/proprietary-license_751.yml | 3 ++ .../data/rules/proprietary-license_752.RULE | 1 + .../data/rules/proprietary-license_752.yml | 3 ++ .../data/rules/proprietary-license_753.RULE | 1 + .../data/rules/proprietary-license_753.yml | 3 ++ .../data/rules/proprietary-license_754.RULE | 3 ++ .../data/rules/proprietary-license_754.yml | 3 ++ .../data/rules/proprietary-license_755.RULE | 1 + .../data/rules/proprietary-license_755.yml | 3 ++ .../data/rules/proprietary-license_756.RULE | 1 + .../data/rules/proprietary-license_756.yml | 3 ++ .../data/rules/proprietary-license_757.RULE | 1 + .../data/rules/proprietary-license_757.yml | 3 ++ .../data/rules/proprietary-license_758.RULE | 1 + .../data/rules/proprietary-license_758.yml | 3 ++ .../data/rules/proprietary-license_759.RULE | 11 +++++ .../data/rules/proprietary-license_759.yml | 2 + .../data/rules/proprietary-license_760.RULE | 9 ++++ .../data/rules/proprietary-license_760.yml | 2 + .../data/rules/proprietary-license_761.RULE | 12 +++++ .../data/rules/proprietary-license_761.yml | 3 ++ .../data/rules/proprietary-license_762.RULE | 1 + .../data/rules/proprietary-license_762.yml | 3 ++ .../data/rules/proprietary-license_763.RULE | 1 + .../data/rules/proprietary-license_763.yml | 3 ++ .../data/rules/proprietary-license_764.RULE | 1 + .../data/rules/proprietary-license_764.yml | 3 ++ .../data/rules/proprietary-license_765.RULE | 1 + .../data/rules/proprietary-license_765.yml | 3 ++ .../data/rules/proprietary-license_766.RULE | 1 + .../data/rules/proprietary-license_766.yml | 5 ++ .../data/rules/proprietary-license_767.RULE | 1 + .../data/rules/proprietary-license_767.yml | 3 ++ .../data/rules/proprietary-license_768.RULE | 1 + .../data/rules/proprietary-license_768.yml | 2 + .../data/rules/proprietary-license_769.RULE | 1 + .../data/rules/proprietary-license_769.yml | 3 ++ .../data/rules/proprietary-license_770.RULE | 1 + .../data/rules/proprietary-license_770.yml | 3 ++ .../data/rules/proprietary-license_771.RULE | 1 + .../data/rules/proprietary-license_771.yml | 3 ++ .../data/rules/proprietary-license_772.RULE | 20 ++++++++ .../data/rules/proprietary-license_772.yml | 2 + .../data/rules/proprietary-license_773.RULE | 2 + .../data/rules/proprietary-license_773.yml | 2 + .../data/rules/proprietary-license_774.RULE | 16 +++++++ .../data/rules/proprietary-license_774.yml | 4 ++ .../data/rules/proprietary-license_775.RULE | 5 ++ .../data/rules/proprietary-license_775.yml | 2 + .../data/rules/proprietary-license_776.RULE | 14 ++++++ .../data/rules/proprietary-license_776.yml | 3 ++ .../data/rules/proprietary-license_777.RULE | 1 + .../data/rules/proprietary-license_777.yml | 3 ++ .../data/rules/proprietary-license_778.RULE | 1 + .../data/rules/proprietary-license_778.yml | 2 + .../data/rules/proprietary-license_779.RULE | 2 + .../data/rules/proprietary-license_779.yml | 4 ++ .../data/rules/proprietary-license_780.RULE | 1 + .../data/rules/proprietary-license_780.yml | 3 ++ .../data/rules/proprietary-license_781.RULE | 1 + .../data/rules/proprietary-license_781.yml | 3 ++ 148 files changed, 628 insertions(+) create mode 100644 src/licensedcode/data/rules/apache-2.0_1142.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_1142.yml create mode 100644 src/licensedcode/data/rules/apache-2.0_1143.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_1143.yml create mode 100644 src/licensedcode/data/rules/bsd-new_1192.RULE create mode 100644 src/licensedcode/data/rules/bsd-new_1192.yml create mode 100644 src/licensedcode/data/rules/bsd-new_1193.RULE create mode 100644 src/licensedcode/data/rules/bsd-new_1193.yml create mode 100644 src/licensedcode/data/rules/false-positive_190.RULE create mode 100644 src/licensedcode/data/rules/false-positive_190.yml create mode 100644 src/licensedcode/data/rules/false-positive_192.RULE create mode 100644 src/licensedcode/data/rules/false-positive_192.yml create mode 100644 src/licensedcode/data/rules/false-positive_201.RULE create mode 100644 src/licensedcode/data/rules/false-positive_201.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0_1386.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0_1386.yml create mode 100644 src/licensedcode/data/rules/mit_1213.RULE create mode 100644 src/licensedcode/data/rules/mit_1213.yml create mode 100644 src/licensedcode/data/rules/mit_1214.RULE create mode 100644 src/licensedcode/data/rules/mit_1214.yml create mode 100644 src/licensedcode/data/rules/mit_1215.RULE create mode 100644 src/licensedcode/data/rules/mit_1215.yml create mode 100644 src/licensedcode/data/rules/mit_1216.RULE create mode 100644 src/licensedcode/data/rules/mit_1216.yml create mode 100644 src/licensedcode/data/rules/mit_1217.RULE create mode 100644 src/licensedcode/data/rules/mit_1217.yml create mode 100644 src/licensedcode/data/rules/mit_1218.RULE create mode 100644 src/licensedcode/data/rules/mit_1218.yml create mode 100644 src/licensedcode/data/rules/mit_1219.RULE create mode 100644 src/licensedcode/data/rules/mit_1219.yml create mode 100644 src/licensedcode/data/rules/mit_1220.RULE create mode 100644 src/licensedcode/data/rules/mit_1220.yml create mode 100644 src/licensedcode/data/rules/mit_1221.RULE create mode 100644 src/licensedcode/data/rules/mit_1221.yml create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_7.RULE create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_7.yml create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_8.RULE create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_8.yml create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_9.RULE create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_9.yml create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_1.RULE create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_1.yml create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_2.RULE create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_2.yml create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_3.RULE create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_3.yml create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_4.RULE create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_4.yml create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_5.RULE create mode 100644 src/licensedcode/data/rules/mit_and_bsd-simplified_5.yml create mode 100644 src/licensedcode/data/rules/osl-3.0_44.RULE create mode 100644 src/licensedcode/data/rules/osl-3.0_44.yml create mode 100644 src/licensedcode/data/rules/osl-3.0_45.RULE create mode 100644 src/licensedcode/data/rules/osl-3.0_45.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_735.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_735.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_736.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_736.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_737.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_737.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_738.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_738.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_739.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_739.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_740.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_740.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_741.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_741.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_742.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_742.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_743.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_743.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_744.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_744.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_745.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_745.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_746.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_746.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_747.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_747.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_748.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_748.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_749.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_749.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_750.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_750.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_751.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_751.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_752.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_752.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_753.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_753.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_754.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_754.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_755.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_755.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_756.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_756.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_757.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_757.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_758.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_758.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_759.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_759.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_760.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_760.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_761.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_761.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_762.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_762.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_763.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_763.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_764.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_764.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_765.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_765.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_766.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_766.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_767.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_767.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_768.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_768.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_769.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_769.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_770.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_770.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_771.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_771.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_772.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_772.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_773.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_773.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_774.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_774.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_775.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_775.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_776.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_776.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_777.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_777.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_778.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_778.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_779.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_779.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_780.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_780.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_781.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_781.yml diff --git a/src/licensedcode/data/rules/apache-2.0_1142.RULE b/src/licensedcode/data/rules/apache-2.0_1142.RULE new file mode 100644 index 00000000000..0ccd4d37739 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1142.RULE @@ -0,0 +1 @@ +[License](https://img.shields.io/badge/License-Apache%202.0-blue.svg) \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_1142.yml b/src/licensedcode/data/rules/apache-2.0_1142.yml new file mode 100644 index 00000000000..e3b77c1018f --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1142.yml @@ -0,0 +1,5 @@ +license_expression: apache-2.0 +is_license_tag: yes +relevance: 100 +ignorable_urls: + - https://img.shields.io/badge/License-Apache%202.0-blue.svg diff --git a/src/licensedcode/data/rules/apache-2.0_1143.RULE b/src/licensedcode/data/rules/apache-2.0_1143.RULE new file mode 100644 index 00000000000..06012d819b6 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1143.RULE @@ -0,0 +1 @@ +https://img.shields.io/badge/License-Apache%202.0-blue.svg) \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_1143.yml b/src/licensedcode/data/rules/apache-2.0_1143.yml new file mode 100644 index 00000000000..655b584ff24 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1143.yml @@ -0,0 +1,5 @@ +license_expression: apache-2.0 +is_license_reference: yes +relevance: 100 +ignorable_urls: + - https://img.shields.io/badge/License-Apache%202.0-blue.svg diff --git a/src/licensedcode/data/rules/bsd-new_1192.RULE b/src/licensedcode/data/rules/bsd-new_1192.RULE new file mode 100644 index 00000000000..cc1b3564efd --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1192.RULE @@ -0,0 +1,3 @@ +## License +The [BSD 3-Clause license][bsd]. +[bsd]: http://opensource.org/licenses/BSD-3-Clause \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-new_1192.yml b/src/licensedcode/data/rules/bsd-new_1192.yml new file mode 100644 index 00000000000..5db108de180 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1192.yml @@ -0,0 +1,5 @@ +license_expression: bsd-new +is_license_notice: yes +relevance: 100 +ignorable_urls: + - http://opensource.org/licenses/BSD-3-Clause diff --git a/src/licensedcode/data/rules/bsd-new_1193.RULE b/src/licensedcode/data/rules/bsd-new_1193.RULE new file mode 100644 index 00000000000..01e7d96d6a4 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1193.RULE @@ -0,0 +1,2 @@ +The [BSD 3-Clause license][bsd]. +[bsd]: http://opensource.org/licenses/BSD-3-Clause \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-new_1193.yml b/src/licensedcode/data/rules/bsd-new_1193.yml new file mode 100644 index 00000000000..5db108de180 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1193.yml @@ -0,0 +1,5 @@ +license_expression: bsd-new +is_license_notice: yes +relevance: 100 +ignorable_urls: + - http://opensource.org/licenses/BSD-3-Clause diff --git a/src/licensedcode/data/rules/false-positive_190.RULE b/src/licensedcode/data/rules/false-positive_190.RULE new file mode 100644 index 00000000000..e84a67274ef --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_190.RULE @@ -0,0 +1,2 @@ +This SPDX licence identifier requirement is enforced by the +[CI (Continuous Integration) \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_190.yml b/src/licensedcode/data/rules/false-positive_190.yml new file mode 100644 index 00000000000..b47355f7117 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_190.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: A comment about licensing diff --git a/src/licensedcode/data/rules/false-positive_192.RULE b/src/licensedcode/data/rules/false-positive_192.RULE new file mode 100644 index 00000000000..7c752d59d06 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_192.RULE @@ -0,0 +1 @@ +new BSD partition \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_192.yml b/src/licensedcode/data/rules/false-positive_192.yml new file mode 100644 index 00000000000..86e07453219 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_192.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: Not a license statement diff --git a/src/licensedcode/data/rules/false-positive_201.RULE b/src/licensedcode/data/rules/false-positive_201.RULE new file mode 100644 index 00000000000..656226807df --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_201.RULE @@ -0,0 +1 @@ +Use jsDelivr, a free open source CDN. \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_201.yml b/src/licensedcode/data/rules/false-positive_201.yml new file mode 100644 index 00000000000..4e876c8eb98 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_201.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: Not a license notice, just a comment on the license of service diff --git a/src/licensedcode/data/rules/gpl-2.0_1386.RULE b/src/licensedcode/data/rules/gpl-2.0_1386.RULE new file mode 100644 index 00000000000..2dd40f938f7 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_1386.RULE @@ -0,0 +1,2 @@ +Licensed under GPLv2. See source distribution for detailed +copyright notices. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_1386.yml b/src/licensedcode/data/rules/gpl-2.0_1386.yml new file mode 100644 index 00000000000..40bcbb97725 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_1386.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1213.RULE b/src/licensedcode/data/rules/mit_1213.RULE new file mode 100644 index 00000000000..3703992d002 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1213.RULE @@ -0,0 +1 @@ +utilizes an MIT license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1213.yml b/src/licensedcode/data/rules/mit_1213.yml new file mode 100644 index 00000000000..2aaf29d7607 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1213.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1214.RULE b/src/licensedcode/data/rules/mit_1214.RULE new file mode 100644 index 00000000000..c28ab787dac --- /dev/null +++ b/src/licensedcode/data/rules/mit_1214.RULE @@ -0,0 +1,3 @@ +## License + +This project source code is available under MIT license. See [LICENSE](LICENSE). \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1214.yml b/src/licensedcode/data/rules/mit_1214.yml new file mode 100644 index 00000000000..85e26e99ea7 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1214.yml @@ -0,0 +1,5 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 +referenced_filenames: + - LICENSE diff --git a/src/licensedcode/data/rules/mit_1215.RULE b/src/licensedcode/data/rules/mit_1215.RULE new file mode 100644 index 00000000000..38aacfd646a --- /dev/null +++ b/src/licensedcode/data/rules/mit_1215.RULE @@ -0,0 +1 @@ +This project source code is available under MIT license. See [LICENSE](LICENSE). \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1215.yml b/src/licensedcode/data/rules/mit_1215.yml new file mode 100644 index 00000000000..85e26e99ea7 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1215.yml @@ -0,0 +1,5 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 +referenced_filenames: + - LICENSE diff --git a/src/licensedcode/data/rules/mit_1216.RULE b/src/licensedcode/data/rules/mit_1216.RULE new file mode 100644 index 00000000000..25a0f00b45a --- /dev/null +++ b/src/licensedcode/data/rules/mit_1216.RULE @@ -0,0 +1 @@ +This project source code is available under MIT license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1216.yml b/src/licensedcode/data/rules/mit_1216.yml new file mode 100644 index 00000000000..2aaf29d7607 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1216.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1217.RULE b/src/licensedcode/data/rules/mit_1217.RULE new file mode 100644 index 00000000000..783a5074849 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1217.RULE @@ -0,0 +1 @@ +licensed exclusively under MIT. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1217.yml b/src/licensedcode/data/rules/mit_1217.yml new file mode 100644 index 00000000000..2aaf29d7607 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1217.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1218.RULE b/src/licensedcode/data/rules/mit_1218.RULE new file mode 100644 index 00000000000..b8abe1d95cc --- /dev/null +++ b/src/licensedcode/data/rules/mit_1218.RULE @@ -0,0 +1 @@ +Unless otherwise specified, each is licensed under the MIT license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1218.yml b/src/licensedcode/data/rules/mit_1218.yml new file mode 100644 index 00000000000..2aaf29d7607 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1218.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1219.RULE b/src/licensedcode/data/rules/mit_1219.RULE new file mode 100644 index 00000000000..d933b6ca653 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1219.RULE @@ -0,0 +1 @@ +each is licensed under the MIT license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1219.yml b/src/licensedcode/data/rules/mit_1219.yml new file mode 100644 index 00000000000..2aaf29d7607 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1219.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1220.RULE b/src/licensedcode/data/rules/mit_1220.RULE new file mode 100644 index 00000000000..0765e09edd0 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1220.RULE @@ -0,0 +1 @@ +Conversion scripts are covered by MIT license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1220.yml b/src/licensedcode/data/rules/mit_1220.yml new file mode 100644 index 00000000000..2aaf29d7607 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1220.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_1221.RULE b/src/licensedcode/data/rules/mit_1221.RULE new file mode 100644 index 00000000000..1477a00b1c1 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1221.RULE @@ -0,0 +1,2 @@ +License +- Code - [MIT](LICENSE.txt) license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1221.yml b/src/licensedcode/data/rules/mit_1221.yml new file mode 100644 index 00000000000..705a1c6df0f --- /dev/null +++ b/src/licensedcode/data/rules/mit_1221.yml @@ -0,0 +1,5 @@ +license_expression: mit +is_license_tag: yes +relevance: 100 +referenced_filenames: + - LICENSE.txt diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_7.RULE b/src/licensedcode/data/rules/mit_and_apache-2.0_7.RULE new file mode 100644 index 00000000000..a78c33ee717 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_7.RULE @@ -0,0 +1,2 @@ +package is licensed under the MIT and Apache License 2.0 licenses. +Please see the LICENSE file for details. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_7.yml b/src/licensedcode/data/rules/mit_and_apache-2.0_7.yml new file mode 100644 index 00000000000..1954df86825 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_7.yml @@ -0,0 +1,4 @@ +license_expression: mit AND apache-2.0 +is_license_notice: yes +referenced_filenames: + - LICENSE diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_8.RULE b/src/licensedcode/data/rules/mit_and_apache-2.0_8.RULE new file mode 100644 index 00000000000..ab9f422a6b8 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_8.RULE @@ -0,0 +1 @@ +package is licensed under the MIT and Apache License 2.0 licenses. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_8.yml b/src/licensedcode/data/rules/mit_and_apache-2.0_8.yml new file mode 100644 index 00000000000..1703e49b7ed --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_8.yml @@ -0,0 +1,3 @@ +license_expression: mit AND apache-2.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_9.RULE b/src/licensedcode/data/rules/mit_and_apache-2.0_9.RULE new file mode 100644 index 00000000000..01f3d029bd3 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_9.RULE @@ -0,0 +1 @@ +licensed under the MIT and Apache License 2.0 licenses. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_9.yml b/src/licensedcode/data/rules/mit_and_apache-2.0_9.yml new file mode 100644 index 00000000000..1703e49b7ed --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_9.yml @@ -0,0 +1,3 @@ +license_expression: mit AND apache-2.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_1.RULE b/src/licensedcode/data/rules/mit_and_bsd-simplified_1.RULE new file mode 100644 index 00000000000..513fd0866d7 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_1.RULE @@ -0,0 +1 @@ +This layer is licensed under MIT & BSD-2-Clause. Newly-added recipes are licensed exclusively under MIT. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_1.yml b/src/licensedcode/data/rules/mit_and_bsd-simplified_1.yml new file mode 100644 index 00000000000..ed42d09370b --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_1.yml @@ -0,0 +1,3 @@ +license_expression: mit AND bsd-simplified +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_2.RULE b/src/licensedcode/data/rules/mit_and_bsd-simplified_2.RULE new file mode 100644 index 00000000000..5d2ba5fb0ca --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_2.RULE @@ -0,0 +1 @@ +This layer is licensed under MIT & BSD-2-Clause. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_2.yml b/src/licensedcode/data/rules/mit_and_bsd-simplified_2.yml new file mode 100644 index 00000000000..ed42d09370b --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_2.yml @@ -0,0 +1,3 @@ +license_expression: mit AND bsd-simplified +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_3.RULE b/src/licensedcode/data/rules/mit_and_bsd-simplified_3.RULE new file mode 100644 index 00000000000..4a5bc85cdb5 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_3.RULE @@ -0,0 +1 @@ +licensed under MIT & BSD-2-Clause. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_3.yml b/src/licensedcode/data/rules/mit_and_bsd-simplified_3.yml new file mode 100644 index 00000000000..ed42d09370b --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_3.yml @@ -0,0 +1,3 @@ +license_expression: mit AND bsd-simplified +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_4.RULE b/src/licensedcode/data/rules/mit_and_bsd-simplified_4.RULE new file mode 100644 index 00000000000..95cc4b017ca --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_4.RULE @@ -0,0 +1 @@ +under MIT & BSD-2-Clause. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_4.yml b/src/licensedcode/data/rules/mit_and_bsd-simplified_4.yml new file mode 100644 index 00000000000..ed42d09370b --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_4.yml @@ -0,0 +1,3 @@ +license_expression: mit AND bsd-simplified +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_5.RULE b/src/licensedcode/data/rules/mit_and_bsd-simplified_5.RULE new file mode 100644 index 00000000000..a3379a33d3f --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_5.RULE @@ -0,0 +1 @@ +MIT & BSD-2-Clause. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_and_bsd-simplified_5.yml b/src/licensedcode/data/rules/mit_and_bsd-simplified_5.yml new file mode 100644 index 00000000000..26812cc3c24 --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_bsd-simplified_5.yml @@ -0,0 +1,3 @@ +license_expression: mit AND bsd-simplified +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/osl-3.0_44.RULE b/src/licensedcode/data/rules/osl-3.0_44.RULE new file mode 100644 index 00000000000..ad89bd22878 --- /dev/null +++ b/src/licensedcode/data/rules/osl-3.0_44.RULE @@ -0,0 +1 @@ +Open Software License v. 3.0 (OSL-3.0) consists of the Open Software License v. 3.0 (OSL-3.0) with the additional Terms below. \ No newline at end of file diff --git a/src/licensedcode/data/rules/osl-3.0_44.yml b/src/licensedcode/data/rules/osl-3.0_44.yml new file mode 100644 index 00000000000..8867aefcb3d --- /dev/null +++ b/src/licensedcode/data/rules/osl-3.0_44.yml @@ -0,0 +1,2 @@ +license_expression: osl-3.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/osl-3.0_45.RULE b/src/licensedcode/data/rules/osl-3.0_45.RULE new file mode 100644 index 00000000000..b4c9f52b2a8 --- /dev/null +++ b/src/licensedcode/data/rules/osl-3.0_45.RULE @@ -0,0 +1,47 @@ +Open Software License v. 3.0 (OSL-3.0) + +This Open Software License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following licensing notice adjacent to the copyright notice for the Original Work: + +Licensed under the Open Software License version 3.0 + +1) Grant of Copyright License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, for the duration of the copyright, to do the following: + +a) to reproduce the Original Work in copies, either alone or as part of a collective work; + +b) to translate, adapt, alter, transform, modify, or arrange the Original Work, thereby creating derivative works ("Derivative Works") based upon the Original Work; + +c) to distribute or communicate copies of the Original Work and Derivative Works to the public, with the proviso that copies of Original Work or Derivative Works that You distribute or communicate shall be licensed under this Open Software License; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor grants You a worldwide, royalty-free, non-exclusive, sublicensable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, for the duration of the patents, to make, use, sell, offer for sale, have made, and import the Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior permission of the Licensor. Except as expressly stated herein, nothing in this License grants any license to Licensor's trademarks, copyrights, patents, trade secrets or any other intellectual property. No patent license is granted to make, use, sell, offer for sale, have made, or import embodiments of any patent claims other than the licensed claims defined in Section 2. No license is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under terms different from this License any Original Work that Licensor otherwise would have a right to license. + +5) External Deployment. The term "External Deployment" means the use, distribution, or communication of the Original Work or Derivative Works in any way such that the Original Work or Derivative Works may be used by anyone other than You, whether those works are distributed or communicated to those persons or made available as an application intended for use over a network. As an express condition for the grants of license hereunder, You must treat any External Deployment by You of the Original Work or a Derivative Work as a distribution under section 1(c). + +6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent, or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately preceding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of non-infringement, merchantability or fitness for a particular purpose. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to the Original Work is granted by this License except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to anyone for any indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to the extent applicable law prohibits such limitation. + +9) Acceptance and Termination. If, at any time, You expressly assented to this License, that assent indicates your clear and irrevocable acceptance of this License and all of its terms and conditions. If You distribute or communicate copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. This License conditions your rights to undertake the activities listed in Section 1, including your right to create Derivative Works based upon the Original Work, and doing so without honoring these terms and conditions is prohibited by copyright law and international treaty. Nothing in this License is intended to affect copyright exceptions and limitations (including "fair use" or "fair dealing"). This License shall terminate immediately and You may no longer exercise any of the rights granted to You by this License upon your failure to honor the conditions in Section 1(c). + +10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of copyright or patent law in the appropriate jurisdiction. This section shall survive the termination of this License. + +12) Attorneys' Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License. + +13) Miscellaneous. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You. + +16) Modification of This License. This License is Copyright © 2005 Lawrence Rosen. Permission is granted to copy, distribute, or communicate this License without modification. Nothing in this License permits You to modify this License as applied to the Original Work or to Derivative Works. However, You may modify the text of this License and copy, distribute or communicate your modified version (the "Modified License") and apply it to other original works of authorship subject to the following conditions: (i) You may not indicate in any way that your Modified License is the "Open Software License" or "OSL" and you may not use those names in the name of your Modified License; (ii) You must replace the notice specified in the first paragraph above with the notice "Licensed under " or with a notice of your own that is not confusingly similar to the notice in this License; and (iii) You may not claim that your original works are open source software unless your Modified License has been approved by Open Source Initiative (OSI) and You comply with its license review and certification process. \ No newline at end of file diff --git a/src/licensedcode/data/rules/osl-3.0_45.yml b/src/licensedcode/data/rules/osl-3.0_45.yml new file mode 100644 index 00000000000..9173f243e91 --- /dev/null +++ b/src/licensedcode/data/rules/osl-3.0_45.yml @@ -0,0 +1,6 @@ +license_expression: osl-3.0 +is_license_text: yes +ignorable_copyrights: + - Copyright (c) 2005 Lawrence Rosen +ignorable_holders: + - Lawrence Rosen diff --git a/src/licensedcode/data/rules/proprietary-license_735.RULE b/src/licensedcode/data/rules/proprietary-license_735.RULE new file mode 100644 index 00000000000..a4d3071f769 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_735.RULE @@ -0,0 +1 @@ +The MIT License (MIT) with restrictions \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_735.yml b/src/licensedcode/data/rules/proprietary-license_735.yml new file mode 100644 index 00000000000..c6d898d464a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_735.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_736.RULE b/src/licensedcode/data/rules/proprietary-license_736.RULE new file mode 100644 index 00000000000..2f7190b817d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_736.RULE @@ -0,0 +1 @@ +The MIT License with restrictions \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_736.yml b/src/licensedcode/data/rules/proprietary-license_736.yml new file mode 100644 index 00000000000..c6d898d464a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_736.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_737.RULE b/src/licensedcode/data/rules/proprietary-license_737.RULE new file mode 100644 index 00000000000..de1021803ae --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_737.RULE @@ -0,0 +1 @@ +MIT License with restrictions \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_737.yml b/src/licensedcode/data/rules/proprietary-license_737.yml new file mode 100644 index 00000000000..c6d898d464a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_737.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_738.RULE b/src/licensedcode/data/rules/proprietary-license_738.RULE new file mode 100644 index 00000000000..b6be6463fef --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_738.RULE @@ -0,0 +1,19 @@ +The MIT License (MIT) with restrictions + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_738.yml b/src/licensedcode/data/rules/proprietary-license_738.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_738.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_739.RULE b/src/licensedcode/data/rules/proprietary-license_739.RULE new file mode 100644 index 00000000000..5b5d03e11f2 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_739.RULE @@ -0,0 +1,26 @@ +The following terms additionally apply and override any above terms for +applicable parties: + +You may not use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software in a military or law enforcement context, +defined as follows: + +1. A military context is a professional context where the intended application +of the Software is integration or use with or by military software, tools +(software or hardware), or personnel. This includes contractors and +subcontractors as well as research affiliates of any military organization. + +2. A law enforcement context is a professional context where the intended +application of the Software is integration or use with or by law enforcement +software, tools (software or hardware), or personnel. This includes +contractors and subcontractors as well as research affiliates of any law +enforcement organization. + +Entities that sell or license to military or law enforcement organizations +may use the Software under the original terms, but only in contexts that do +not assist or supplement the sold or licensed product. + +Students and academics who are affiliated with research institutions may use +the Software under the original terms, but only in contexts that do not assist +or supplement collaboration or affiliation with any military or law +enforcement organization. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_739.yml b/src/licensedcode/data/rules/proprietary-license_739.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_739.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_740.RULE b/src/licensedcode/data/rules/proprietary-license_740.RULE new file mode 100644 index 00000000000..86bd643f777 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_740.RULE @@ -0,0 +1,20 @@ +Permission is hereby granted, free of charge, to any person (except those restricted as below) +obtaining a copy of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Existing or previous TekMonks Clients, Partners or organizations having a direct or +indirect commerical relationship with TekMonks must purchase Commercial Support and +can't use any current or previous version of this software free of charge. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_740.yml b/src/licensedcode/data/rules/proprietary-license_740.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_740.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_741.RULE b/src/licensedcode/data/rules/proprietary-license_741.RULE new file mode 100644 index 00000000000..503805a0e8a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_741.RULE @@ -0,0 +1,20 @@ +Permission is hereby granted, free of charge, to any person (except those restricted as below) +obtaining a copy of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Existing or previous Clients, Partners or organizations having a direct or +indirect commerical relationship with must purchase Commercial Support and +can't use any current or previous version of this software free of charge. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_741.yml b/src/licensedcode/data/rules/proprietary-license_741.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_741.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_742.RULE b/src/licensedcode/data/rules/proprietary-license_742.RULE new file mode 100644 index 00000000000..4a89a85e299 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_742.RULE @@ -0,0 +1,3 @@ +Existing or previous Clients, Partners or organizations having a direct or +indirect commerical relationship with must purchase Commercial Support and +can't use any current or previous version of this software free of charge. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_742.yml b/src/licensedcode/data/rules/proprietary-license_742.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_742.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_743.RULE b/src/licensedcode/data/rules/proprietary-license_743.RULE new file mode 100644 index 00000000000..9b29313cc93 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_743.RULE @@ -0,0 +1,42 @@ +The MIT License (MIT) with restrictions + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software according to the limitations and restrictions below. Outside these +restrictions, this license includes the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +RESTRICTION ON SELLING + +You may not sell the Software as a Service (SaaS) in itself, that is, you may +not sell a digital service whose main component is the Software. You may offer +such a service completely free of charge, but in that case you must contribute +any changes made to the Software back to the project. You may expressly use the +software to manage your own commercial SaaS offering without the requirement to +contribute changes back. In plain language: + +- Running your own services behind apiplexy and selling them for money is okay. +- Writing your own in-house plugins for apiplexy and not sharing or contributing + those is okay. +- Helping people set up apiplexy in-house for money is okay. +- Selling apiplexy as a service to manage other people's services for money is + NOT okay. +- Offering apiplexy as a service (as above), but completely free of charge + forever, is okay, but you must make your source code available. + +COPYRIGHT TRANSMISSION + +By contributing to the project, you transfer the copyright to your contributed +code to the project maintainer (currently ). \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_743.yml b/src/licensedcode/data/rules/proprietary-license_743.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_743.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_744.RULE b/src/licensedcode/data/rules/proprietary-license_744.RULE new file mode 100644 index 00000000000..c8df2278543 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_744.RULE @@ -0,0 +1,40 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software according to the limitations and restrictions below. Outside these +restrictions, this license includes the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +RESTRICTION ON SELLING + +You may not sell the Software as a Service (SaaS) in itself, that is, you may +not sell a digital service whose main component is the Software. You may offer +such a service completely free of charge, but in that case you must contribute +any changes made to the Software back to the project. You may expressly use the +software to manage your own commercial SaaS offering without the requirement to +contribute changes back. In plain language: + +- Running your own services behind apiplexy and selling them for money is okay. +- Writing your own in-house plugins for apiplexy and not sharing or contributing + those is okay. +- Helping people set up apiplexy in-house for money is okay. +- Selling apiplexy as a service to manage other people's services for money is + NOT okay. +- Offering apiplexy as a service (as above), but completely free of charge + forever, is okay, but you must make your source code available. + +COPYRIGHT TRANSMISSION + +By contributing to the project, you transfer the copyright to your contributed +code to the project maintainer (currently ). \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_744.yml b/src/licensedcode/data/rules/proprietary-license_744.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_744.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_745.RULE b/src/licensedcode/data/rules/proprietary-license_745.RULE new file mode 100644 index 00000000000..13f32935b7a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_745.RULE @@ -0,0 +1,22 @@ +RESTRICTION ON SELLING + +You may not sell the Software as a Service (SaaS) in itself, that is, you may +not sell a digital service whose main component is the Software. You may offer +such a service completely free of charge, but in that case you must contribute +any changes made to the Software back to the project. You may expressly use the +software to manage your own commercial SaaS offering without the requirement to +contribute changes back. In plain language: + +- Running your own services behind apiplexy and selling them for money is okay. +- Writing your own in-house plugins for apiplexy and not sharing or contributing + those is okay. +- Helping people set up apiplexy in-house for money is okay. +- Selling apiplexy as a service to manage other people's services for money is + NOT okay. +- Offering apiplexy as a service (as above), but completely free of charge + forever, is okay, but you must make your source code available. + +COPYRIGHT TRANSMISSION + +By contributing to the project, you transfer the copyright to your contributed +code to the project maintainer (currently ). \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_745.yml b/src/licensedcode/data/rules/proprietary-license_745.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_745.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_746.RULE b/src/licensedcode/data/rules/proprietary-license_746.RULE new file mode 100644 index 00000000000..36388a4bb2a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_746.RULE @@ -0,0 +1,5 @@ +License +is licensed under MIT, with a special restriction: +you may not sell itself as a SaaS service. Meaning, you can and should run your +own commercial/paid services behind but you can't sell itself as a service to +become the next etc. For details, see the LICENSE file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_746.yml b/src/licensedcode/data/rules/proprietary-license_746.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_746.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_747.RULE b/src/licensedcode/data/rules/proprietary-license_747.RULE new file mode 100644 index 00000000000..0f07744e70c --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_747.RULE @@ -0,0 +1,4 @@ +is licensed under MIT, with a special restriction: +you may not sell itself as a SaaS service. Meaning, you can and should run your +own commercial/paid services behind but you can't sell itself as a service to +become the next etc. For details, see the LICENSE file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_747.yml b/src/licensedcode/data/rules/proprietary-license_747.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_747.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_748.RULE b/src/licensedcode/data/rules/proprietary-license_748.RULE new file mode 100644 index 00000000000..ab3bb2c40b1 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_748.RULE @@ -0,0 +1 @@ +licensed under MIT, with a special restriction: \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_748.yml b/src/licensedcode/data/rules/proprietary-license_748.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_748.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_749.RULE b/src/licensedcode/data/rules/proprietary-license_749.RULE new file mode 100644 index 00000000000..0a57cdf0297 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_749.RULE @@ -0,0 +1,3 @@ +you may not sell itself as a SaaS service. Meaning, you can and should run your +own commercial/paid services behind but you can't sell itself as a service to +become the next etc. For details, see the LICENSE file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_749.yml b/src/licensedcode/data/rules/proprietary-license_749.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_749.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_750.RULE b/src/licensedcode/data/rules/proprietary-license_750.RULE new file mode 100644 index 00000000000..de28e925e39 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_750.RULE @@ -0,0 +1 @@ +licensed under MIT license with restriction on scientific publishing \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_750.yml b/src/licensedcode/data/rules/proprietary-license_750.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_750.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_751.RULE b/src/licensedcode/data/rules/proprietary-license_751.RULE new file mode 100644 index 00000000000..a865ec5372c --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_751.RULE @@ -0,0 +1 @@ +licensed under MIT license with restriction \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_751.yml b/src/licensedcode/data/rules/proprietary-license_751.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_751.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_752.RULE b/src/licensedcode/data/rules/proprietary-license_752.RULE new file mode 100644 index 00000000000..cbbf10d465b --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_752.RULE @@ -0,0 +1 @@ +licensed under MIT license with restrictions \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_752.yml b/src/licensedcode/data/rules/proprietary-license_752.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_752.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_753.RULE b/src/licensedcode/data/rules/proprietary-license_753.RULE new file mode 100644 index 00000000000..8910157c450 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_753.RULE @@ -0,0 +1 @@ +MIT license with restriction \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_753.yml b/src/licensedcode/data/rules/proprietary-license_753.yml new file mode 100644 index 00000000000..c6d898d464a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_753.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_754.RULE b/src/licensedcode/data/rules/proprietary-license_754.RULE new file mode 100644 index 00000000000..ad7dd0235a5 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_754.RULE @@ -0,0 +1,3 @@ +License + +Unless otherwise specified, each is licensed under the MIT license, with restrictions. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_754.yml b/src/licensedcode/data/rules/proprietary-license_754.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_754.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_755.RULE b/src/licensedcode/data/rules/proprietary-license_755.RULE new file mode 100644 index 00000000000..fbc457eadc8 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_755.RULE @@ -0,0 +1 @@ +Unless otherwise specified, each is licensed under the MIT license, with restrictions. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_755.yml b/src/licensedcode/data/rules/proprietary-license_755.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_755.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_756.RULE b/src/licensedcode/data/rules/proprietary-license_756.RULE new file mode 100644 index 00000000000..37dc260845d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_756.RULE @@ -0,0 +1 @@ +license: MIT with restrictions \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_756.yml b/src/licensedcode/data/rules/proprietary-license_756.yml new file mode 100644 index 00000000000..4c1c892242f --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_756.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_tag: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_757.RULE b/src/licensedcode/data/rules/proprietary-license_757.RULE new file mode 100644 index 00000000000..a9272f0d674 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_757.RULE @@ -0,0 +1 @@ +license: MIT with restriction \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_757.yml b/src/licensedcode/data/rules/proprietary-license_757.yml new file mode 100644 index 00000000000..4c1c892242f --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_757.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_tag: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_758.RULE b/src/licensedcode/data/rules/proprietary-license_758.RULE new file mode 100644 index 00000000000..79eeaf6d4ff --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_758.RULE @@ -0,0 +1 @@ +licensed under the MIT license, with restrictions. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_758.yml b/src/licensedcode/data/rules/proprietary-license_758.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_758.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_759.RULE b/src/licensedcode/data/rules/proprietary-license_759.RULE new file mode 100644 index 00000000000..923be8b5051 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_759.RULE @@ -0,0 +1,11 @@ +Supplement to the license (CC-BY-4.0) + +This repository and the associated repositories hold scientific writing, +data and software, neither published nor peer-reviewed. You are free to use +them in your project, however you should NOT publish a paper in a scientific +journal using our data or software before we publish ours, unless you obtain a +permission from us. As the paper from this repository has not yet been peer +reviewed, please treat the information published here with caution as it may +contain errors and change without notice. + +The above supplement to the license will be revoked once our paper is accepted for publication. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_759.yml b/src/licensedcode/data/rules/proprietary-license_759.yml new file mode 100644 index 00000000000..d3712bcc90f --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_759.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_reference: yes diff --git a/src/licensedcode/data/rules/proprietary-license_760.RULE b/src/licensedcode/data/rules/proprietary-license_760.RULE new file mode 100644 index 00000000000..8841420b271 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_760.RULE @@ -0,0 +1,9 @@ +This repository and the associated repositories hold scientific writing, +data and software, neither published nor peer-reviewed. You are free to use +them in your project, however you should NOT publish a paper in a scientific +journal using our data or software before we publish ours, unless you obtain a +permission from us. As the paper from this repository has not yet been peer +reviewed, please treat the information published here with caution as it may +contain errors and change without notice. + +The above supplement to the license will be revoked once our paper is accepted for publication. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_760.yml b/src/licensedcode/data/rules/proprietary-license_760.yml new file mode 100644 index 00000000000..d3712bcc90f --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_760.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_reference: yes diff --git a/src/licensedcode/data/rules/proprietary-license_761.RULE b/src/licensedcode/data/rules/proprietary-license_761.RULE new file mode 100644 index 00000000000..d0e5293d18a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_761.RULE @@ -0,0 +1,12 @@ +database use is restricted according to the terms mentioned below: +``` + You are allowed to use for personal and academic + purposes provided that: + 1. You do NOT redistribute any altered versions of the files. + 2. You do NOT redistribute any files for any kind of profit. + 3. You acknowledge in any publication whose results make use of + , by any means, using a formula similar to the + following: + "This work makes use of the distributed + by the Computing Institute." + You should also cite the paper mentioned above. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_761.yml b/src/licensedcode/data/rules/proprietary-license_761.yml new file mode 100644 index 00000000000..cacec6d3803 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_761.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_text: yes +notes: seen in https://github.com/peshitta/sedrajs/blob/ba6684a97e80cde14cc2b51903d8f802a1a19ab1/doc/readme.hbs#L55 diff --git a/src/licensedcode/data/rules/proprietary-license_762.RULE b/src/licensedcode/data/rules/proprietary-license_762.RULE new file mode 100644 index 00000000000..c5b06c8d9c2 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_762.RULE @@ -0,0 +1 @@ +License: MIT with restriction: Re-publish same or similar product is forbidden. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_762.yml b/src/licensedcode/data/rules/proprietary-license_762.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_762.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_763.RULE b/src/licensedcode/data/rules/proprietary-license_763.RULE new file mode 100644 index 00000000000..b17f2b7d9dc --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_763.RULE @@ -0,0 +1 @@ +MIT with restriction \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_763.yml b/src/licensedcode/data/rules/proprietary-license_763.yml new file mode 100644 index 00000000000..c6d898d464a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_763.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_764.RULE b/src/licensedcode/data/rules/proprietary-license_764.RULE new file mode 100644 index 00000000000..3f5b615c75d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_764.RULE @@ -0,0 +1 @@ +MIT with restriction: Re-publish same or similar product is forbidden. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_764.yml b/src/licensedcode/data/rules/proprietary-license_764.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_764.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_765.RULE b/src/licensedcode/data/rules/proprietary-license_765.RULE new file mode 100644 index 00000000000..c9ff44df9b6 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_765.RULE @@ -0,0 +1 @@ +Re-publish same or similar product is forbidden. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_765.yml b/src/licensedcode/data/rules/proprietary-license_765.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_765.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_766.RULE b/src/licensedcode/data/rules/proprietary-license_766.RULE new file mode 100644 index 00000000000..e07f59bb322 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_766.RULE @@ -0,0 +1 @@ +MIT with restriction to distribute](DESIGN_LICENSE.txt) license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_766.yml b/src/licensedcode/data/rules/proprietary-license_766.yml new file mode 100644 index 00000000000..55051933df1 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_766.yml @@ -0,0 +1,5 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 +referenced_filenames: + - DESIGN_LICENSE.txt diff --git a/src/licensedcode/data/rules/proprietary-license_767.RULE b/src/licensedcode/data/rules/proprietary-license_767.RULE new file mode 100644 index 00000000000..b5295b624b6 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_767.RULE @@ -0,0 +1 @@ +MIT with restriction to distribute \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_767.yml b/src/licensedcode/data/rules/proprietary-license_767.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_767.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_768.RULE b/src/licensedcode/data/rules/proprietary-license_768.RULE new file mode 100644 index 00000000000..cf541849955 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_768.RULE @@ -0,0 +1 @@ +Software is not licensed for commercial use. If you wish to purchase a commercial license, or for other business questions, contact me: \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_768.yml b/src/licensedcode/data/rules/proprietary-license_768.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_768.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_769.RULE b/src/licensedcode/data/rules/proprietary-license_769.RULE new file mode 100644 index 00000000000..5e5a4a1e467 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_769.RULE @@ -0,0 +1 @@ +Software is not licensed for commercial use. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_769.yml b/src/licensedcode/data/rules/proprietary-license_769.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_769.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_770.RULE b/src/licensedcode/data/rules/proprietary-license_770.RULE new file mode 100644 index 00000000000..32cecab491d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_770.RULE @@ -0,0 +1 @@ +not licensed for commercial use. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_770.yml b/src/licensedcode/data/rules/proprietary-license_770.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_770.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_771.RULE b/src/licensedcode/data/rules/proprietary-license_771.RULE new file mode 100644 index 00000000000..7f6ce98e84a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_771.RULE @@ -0,0 +1 @@ +licensed for commercial use. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_771.yml b/src/licensedcode/data/rules/proprietary-license_771.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_771.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_772.RULE b/src/licensedcode/data/rules/proprietary-license_772.RULE new file mode 100644 index 00000000000..b6722ac1c67 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_772.RULE @@ -0,0 +1,20 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software, design files (Sketch file) and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +This License does not grant permission to distribute, sublicense, and/or sell copies of the Software, +use the trade names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing above. + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_772.yml b/src/licensedcode/data/rules/proprietary-license_772.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_772.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_773.RULE b/src/licensedcode/data/rules/proprietary-license_773.RULE new file mode 100644 index 00000000000..ec4fe88fc69 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_773.RULE @@ -0,0 +1,2 @@ +By forking this project you hereby grant permission for any commits to your fork +to be merged back into this repository and, with attribution, be released under the terms of the MIT License. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_773.yml b/src/licensedcode/data/rules/proprietary-license_773.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_773.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_774.RULE b/src/licensedcode/data/rules/proprietary-license_774.RULE new file mode 100644 index 00000000000..27f67254ff5 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_774.RULE @@ -0,0 +1,16 @@ +Permission is hereby granted for use on SYSTEMS only, in which case, +it is free of charge, to any person obtaining a copy of this software and associated +documentation files (the Software), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_774.yml b/src/licensedcode/data/rules/proprietary-license_774.yml new file mode 100644 index 00000000000..f01b93d0c26 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_774.yml @@ -0,0 +1,4 @@ +license_expression: proprietary-license +is_license_text: yes +minimum_coverage: 95 +notes: Limited to certain HW. Seen in https://github.com/espressif/ESP8266_RTOS_SDK/commit/19aed2e67ffcc27ba4dca9aad4b4264f62c4bcc2 diff --git a/src/licensedcode/data/rules/proprietary-license_775.RULE b/src/licensedcode/data/rules/proprietary-license_775.RULE new file mode 100644 index 00000000000..326c875a1cc --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_775.RULE @@ -0,0 +1,5 @@ +Sources of the system under license MIT with conditions: + - Charity links must be displayed on the page + - Code of the system only for non-commercial use only + - Derivative works can be distibuted only under the same license with the same restrictions +In case you delete or edit this code to break charity links, this license agreement is NOT applied to you. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_775.yml b/src/licensedcode/data/rules/proprietary-license_775.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_775.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_776.RULE b/src/licensedcode/data/rules/proprietary-license_776.RULE new file mode 100644 index 00000000000..44005d96917 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_776.RULE @@ -0,0 +1,14 @@ +The binary distribution of is licensed under the following terms: + +- Free for non-commercial use under the following conditions: + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 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. + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +- For commercial use or/and bundling with commercial software + • The software vendor has to obtain a commercial license from the authors \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_776.yml b/src/licensedcode/data/rules/proprietary-license_776.yml new file mode 100644 index 00000000000..e9ec0445f18 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_776.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_text: yes +notes: Seen in https://raw.githubusercontent.com/macos-fuse-t/fuse-t/main/License.txt diff --git a/src/licensedcode/data/rules/proprietary-license_777.RULE b/src/licensedcode/data/rules/proprietary-license_777.RULE new file mode 100644 index 00000000000..bed25f0e8a8 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_777.RULE @@ -0,0 +1 @@ +licensed under a restricted modification of the MIT license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_777.yml b/src/licensedcode/data/rules/proprietary-license_777.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_777.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_778.RULE b/src/licensedcode/data/rules/proprietary-license_778.RULE new file mode 100644 index 00000000000..3b14dff8430 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_778.RULE @@ -0,0 +1 @@ +However, in addition to the other notice obligations, (1) all copies of the Program in Executable and Source Code form must, as a form of attribution of the original author, include on each user interface screen (i) the "powered by " text; and (2) all derivative works and copies of derivative works of the Covered Code in Executable and Source Code form must include on each user interface screen (i) the "powered by" text. In addition, the "powered by " text, as appropriate, must be visible to all users, must appear in each user interface screen, and must be in the same position. When users click on the "powered by" text it must direct them to https:. This obligation shall also apply to any copies or derivative works. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_778.yml b/src/licensedcode/data/rules/proprietary-license_778.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_778.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_779.RULE b/src/licensedcode/data/rules/proprietary-license_779.RULE new file mode 100644 index 00000000000..3ecb90fa428 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_779.RULE @@ -0,0 +1,2 @@ +Licensed under the Open Logistics License 1.0. +For details on the licensing terms, see the LICENSE file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_779.yml b/src/licensedcode/data/rules/proprietary-license_779.yml new file mode 100644 index 00000000000..1f8a704f2e8 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_779.yml @@ -0,0 +1,4 @@ +license_expression: proprietary-license +is_license_notice: yes +referenced_filenames: + - LICENSE diff --git a/src/licensedcode/data/rules/proprietary-license_780.RULE b/src/licensedcode/data/rules/proprietary-license_780.RULE new file mode 100644 index 00000000000..314de701698 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_780.RULE @@ -0,0 +1 @@ +Licensed under the Open Logistics License 1.0. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_780.yml b/src/licensedcode/data/rules/proprietary-license_780.yml new file mode 100644 index 00000000000..e55fcc24a28 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_780.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/proprietary-license_781.RULE b/src/licensedcode/data/rules/proprietary-license_781.RULE new file mode 100644 index 00000000000..4626e288c68 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_781.RULE @@ -0,0 +1 @@ +Open Logistics License 1.0. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_781.yml b/src/licensedcode/data/rules/proprietary-license_781.yml new file mode 100644 index 00000000000..c6d898d464a --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_781.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_reference: yes +relevance: 100 From a58ec57cb316289ddca3fbd9e4eb47647b1a71da Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 14 Sep 2022 00:54:32 +0200 Subject: [PATCH 26/54] Optionally includetext in Rule.to_dict() Signed-off-by: Philippe Ombredanne --- src/licensedcode/models.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/licensedcode/models.py b/src/licensedcode/models.py index 0ee61a62c73..0b29103b169 100644 --- a/src/licensedcode/models.py +++ b/src/licensedcode/models.py @@ -1597,10 +1597,11 @@ def get_min_high_matched_length(self, unique=False): return (self.min_high_matched_length_unique if unique else self.min_high_matched_length) - def to_dict(self): + def to_dict(self, include_text=False): """ - Return an ordered mapping of self, excluding texts. Used for - serialization. Empty values are not included. + Return an ordered mapping of self, excluding texts unless + ``include_text`` is True. Used for serialization. Empty values are not + included. """ data = {} @@ -1640,6 +1641,9 @@ def to_dict(self): if self.notes: data['notes'] = self.notes + if include_text and self.text: + data['text'] = self.text + if not is_false_positive: ignorables = ( 'ignorable_copyrights', @@ -1915,10 +1919,10 @@ def write(location, byte_string): data_file = self.data_file(rules_data_dir=rules_data_dir) as_yaml = saneyaml.dump(self.to_dict(), indent=4, encoding='utf-8') - write(data_file, as_yaml) + write(location=data_file, byte_string=as_yaml) text_file = self.text_file(rules_data_dir=rules_data_dir) - write(text_file, self.text.encode('utf-8')) + write(location=text_file, byte_string=self.text.encode('utf-8')) def load(self, data_file, text_file, with_checks=True): """ From 2c1590002ed706819164195b2ab7da0a39f48a2c Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 14 Sep 2022 00:55:00 +0200 Subject: [PATCH 27/54] Adapt script to latest store text model Signed-off-by: Philippe Ombredanne --- etc/scripts/licenses/buildrules.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/etc/scripts/licenses/buildrules.py b/etc/scripts/licenses/buildrules.py index d48dbb5d145..705a0416c65 100644 --- a/etc/scripts/licenses/buildrules.py +++ b/etc/scripts/licenses/buildrules.py @@ -77,7 +77,7 @@ def __attrs_post_init__(self, *args, **kwargs): def load_data(location="00-new-licenses.txt"): """ Load rules metadata and text from file at ``location``. Return a list of - LicenseRulew. + RuleData. """ with io.open(location, encoding="utf-8") as o: lines = o.read().splitlines(False) @@ -95,7 +95,7 @@ def load_data(location="00-new-licenses.txt"): if not (ln == 1 or in_text): raise Exception( "Invalid structure: #{ln}: {line}\n".format(**locals()) - + "\n".join(last_lines[-10:]) + +"\n".join(last_lines[-10:]) ) in_data = True @@ -111,7 +111,7 @@ def load_data(location="00-new-licenses.txt"): if not in_data: raise Exception( "Invalid structure: #{ln}: {line}\n".format(**locals()) - + "\n".join(last_lines[-10:]) + +"\n".join(last_lines[-10:]) ) in_data = False @@ -169,7 +169,10 @@ def find_rule_base_loc(license_expression): Return a new, unique and non-existing base name location suitable to create a new rule using the a license_expression as a prefix. """ - return models.find_rule_base_location(license_expression, rules_directory=models.rules_data_dir) + return models.find_rule_base_location( + name_prefix=license_expression, + rules_directory=models.rules_data_dir, + ) @click.command() @@ -210,8 +213,7 @@ def cli(licenses_file): minimum_coverage = rdata.data.get("minimum_coverage") rdata.data["has_stored_minimum_coverage"] = bool(minimum_coverage) - rl = models.BasicRule(**rdata.data) - rl.text = rdata.text + rl = models.BasicRule(text=rdata.text, **rdata.data) skinny_rules.append(rl) models.validate_rules(skinny_rules, licenses_by_key, with_text=True) @@ -226,6 +228,9 @@ def cli(licenses_file): else: base_name = rule.license_expression + base_loc = find_rule_base_loc(base_name) + identifier = f"{base_loc}.RULE" + text = rule.text existing_rule = rule_exists(text) @@ -241,13 +246,10 @@ def cli(licenses_file): print(existing_msg.format(**locals())) continue - base_loc = find_rule_base_loc(base_name) - - rd = rule.to_dict() - rd["text"] = rule.text + rd = rule.to_dict(include_text=True) rd["has_stored_relevance"] = rule.has_stored_relevance rd["has_stored_minimum_coverage"] = rule.has_stored_minimum_coverage - + rd["identifier"] = identifier rulerec = models.Rule(**rd) # force recomputing relevance to remove junk stored relevance for long rules @@ -260,9 +262,9 @@ def cli(licenses_file): print(existing_msg.format(**locals())) continue else: - print(f"Adding new rule: {base_name}") - models.update_ignorables(rulerec, verbose=False) - rulerec.dump() + print(f"Adding new rule: {identifier}") + rl = models.update_ignorables(rulerec, verbose=False) + rl.dump(rules_data_dir=models.rules_data_dir) rule_by_tokens[rule_tokens] = base_name From 8acbef5c0d209bcbdbb5b3c7495a21440c6c1b13 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 14 Sep 2022 00:57:13 +0200 Subject: [PATCH 28/54] Add new licenses Contributed-by: Dennis Clark Signed-off-by: Philippe Ombredanne --- .../data/licenses/olf-ccla-1.0.LICENSE | 131 ++++++++++ .../data/licenses/olf-ccla-1.0.yml | 13 + .../data/licenses/oll-1.0.LICENSE | 237 ++++++++++++++++++ src/licensedcode/data/licenses/oll-1.0.yml | 9 + 4 files changed, 390 insertions(+) create mode 100644 src/licensedcode/data/licenses/olf-ccla-1.0.LICENSE create mode 100644 src/licensedcode/data/licenses/olf-ccla-1.0.yml create mode 100644 src/licensedcode/data/licenses/oll-1.0.LICENSE create mode 100644 src/licensedcode/data/licenses/oll-1.0.yml diff --git a/src/licensedcode/data/licenses/olf-ccla-1.0.LICENSE b/src/licensedcode/data/licenses/olf-ccla-1.0.LICENSE new file mode 100644 index 00000000000..5bc3a1afa16 --- /dev/null +++ b/src/licensedcode/data/licenses/olf-ccla-1.0.LICENSE @@ -0,0 +1,131 @@ +Open Logistics Foundation +Corporate Contributor License Agreement (“CLA”) +Version 1.0, March 2022 +https://www.openlogisticsfoundation.org/licenses + +The Open Logistics Foundation provides a framework for the design, development and use of open source solutions in logistics. Within this framework, developers bring together their efforts for increased efficiency and successful commercial use on the basis of open source components. + +This CLA enables the Contributor to submit Contributions to the Open Logistics Foundation, or to have them submitted, and to grant the rights stated below in such Contribution/s in their entirety. This CLA determines which of the Contributor’s rights in their Contributions to the Open Logistics Foundation will be granted by the Contributor to the Open Logistics Foundation and the conditions that must be observed in that regard. + +By way of conclusion of this CLA, the Contributor accepts the following conditions for their current and future Contributions to the Open Logistics Foundation. Except for the licenses granted in this CLA to the Open Logistics Foundation and the recipients of Works containing such Contribution distributed by the Open Logistics Foundation, the Contributor reserves all rights in their Contributions. + +Please complete, sign and send this Agreement to info@openlogisticsfoundation.org. The CLA is concluded when the Open Logistics Foundation expressly confirms the conclusion of the CLA or activates access to the Open Logistics Repository for the Contributor, thereby enabling the Contributor to submit Contributions. + +Corporation name: +Corporation address: +Point of Contact / CLA-Manager: +E-Mail: +Phone: + +Referred to as “Contributor” or “you” + +1 Definitions + +(1) “Contribution” means any work protected under copyright, design and/or patent law, including any modifications of or additions to this work as well as adaptations of the work, that are submitted by the Contributor as copyright holder or by parties legally or contractually entitled to do so by copyright holders to the Open Logistics Foundation for inclusion in works developed and distributed by the Open Logistics Foundation. Within the meaning of this definition, “submit” means any form of electronic or written communication which is intentionally submitted to the Open Logistics Foundation to discuss or improve a current or future work or project undertaken by the Open Logistics Foundation, including but not limited to communications sent via electronic mailing lists, source code control systems and issue tracking systems; however, communications that the Contributor or any employee specifically named by him/her have clearly marked as “no contribution”, or which are otherwise identified as such in writing, are excluded. + +(2) “Work” means any work protected under copyright, design and/or patent law containing a Contribution. + +(3) “Committers” are persons named by the Open Logistics Foundation or by Contributors who have write access to works or projects undertaken by the Open Logistics Foundation in the version control system. + +(4) “Source Code” means the version of the code of the respective Contribution – if the Contribution is a software – in the programming language. + +(5) “Object Code” means the intermediate product of a compilation or translation process of the Source Code. + +2 Granting of usage rights +The Contributor hereby grants the Open Logistics Foundation and any third party who receives and/or uses a Work or the Contributions themselves – whether adapted or not - for the duration of the existence of the copyrights pertaining to such Contributions +• the royalty-free and non-exclusive right, +• sublicensable for commercial and non-commercial purposes +• worldwide and perpetual, +• irrevocable and non-terminable, +to use the Contributions in their original form or in modified, translated, edited or transformed form on their own or as a part of a Work in the following ways: +• use them in any hardware and software environment, - insofar as the Contribution is a software – in particular to store or load them permanently or temporarily, to display them and run them, including to the extent reproductions are necessary to that end, +• modify, translate, edit or transform them in another way, +• store, reproduce, exhibit or publish them, distribute them in tangible or intangible form, on any medium or in any other way, for commercial and non-commercial purposes, in particular to communicate them privately or publicly, also through image, audio and other information carriers, irrespective of whether by wire or wireless means, +• use them in databases, data networks and online services, including the right to make it available in Source Code or Object Code to users of the aforementioned databases, networks and online services for research and retrieval purposes, +• allow third parties to use or operate them, +• use them not only for own purposes but also to provide services to third parties, +• distribute them. + +The above right of use relates to the Contributions, in particular – insofar as the Contribution is a software– their Source Code and Object Code in any and all forms. The above usage rights include – where applicable – design rights. + +3 Granting of a patent license + +(1) For any patents (including pending patent applications) owned and licensable by the Contributor at the time of the submission of the Contribution, the Contributor hereby grants the Open Logistics Foundation and any third party who receives and/or uses a Work containing the Contributions or the Contributions themselves - adapted or not - a +• perpetual, +• worldwide, +• non-exclusive, +• free of charge, +• irrevocable +patent license in all rights deriving from the patent to +• produce, +• arrange to have produced, +• use, +• offer for sale, +• sell, +• import and otherwise transfer + + the Work or the respective Contributions. + +However, this patent license covers only those rights deriving from the patent of the respective Contributor as are indispensable in order not to infringe that patent and only to the extent that the use of the Contributor’s respective Contribution, whether in itself or as a combination with other Contributions of the Contributor or any third parties together with the Work for which these Contributions were submitted, would otherwise infringe that patent. For avoidance of doubt, no patent licenses are granted for the use of a Work or the Contribution which become necessary for lawful use because third party modifications are made to the Work or the respective Contribution after the Contribution has been submitted by the Contributor. + +(2) If any entity or person institutes patent litigation against You or any other entity or person (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that person or entity under this CLA for that Contribution or Work shall terminate as of the date such litigation is filed. + +(3) The Contributor is entitled to decide in its own discretion to abandon respectively maintain any patent for which he has granted a patent license in accordance with para. 1 of this Section 3. + +4 Contributor’s binding representations + +(1) The Contributor hereby represents that +a. it is entitled to grant the usage rights and - to the extent applicable - patent licenses for Contributions under this CLA, and +b. by granting usage rights under Section 2 above and patent licenses under Section 3 above, they are not infringing any rights granted by the Contributor to third parties. + +(2) Furthermore, the Contributor hereby undertakes to identify by name all employees and service providers who submit Contributions or otherwise make them available to the Open Logistics Foundation in the Contributor’s name, and that all employees and service providers they identify by name to the Open Logistics Foundation are authorised to submit Contributions in the Contributor’s name; identifying the employees in this regard shall be at least in text form (as per Sec. 126b German Civil Code). It is the Contributor’s sole responsibility to notify the Open Logistics Foundation if changes need to be made to the list of named employees authorised to make Contributions in the Contributor’s name. + +(3) If the Contributor wishes to submit a third-party work, this must take place separately from any Contribution, in which case the complete details of the source and all licenses or other limitations (including but not limited to any associated patents, trademarks and licensing agreements) which they are personally aware of must be provided. The corresponding work must be clearly identified as a third-party work when it is submitted. + +5 Trademarks +The Contributor does not grant permission to use its trade names, trademarks, service marks or product names. + +6 No restriction on other use by the Contributor +The Contributor is expressly permitted to use and exploit the Contributions on a commercial or non– commercial basis – individually, in part or as part of another work – in accordance with the rights held by the Contributor, provided that such other use or exploitation does not conflict with the rights granted under this CLA. + +7 Obligations of the Open Logistics Foundation + +(1) The Open Logistics Foundation is not obliged to incorporate the Contributor’s Contributions into any Work or to use them in any other way. + +(2) If a Work is distributed by the Open Logistics Foundation by way of incorporation of the Contributor’s Contributions or if the Contributions themselves are distributed, the Open Logistics Foundation is obliged - irrespective of whether the Contributions have been modified by the Open Logistics Foundation or any third party - +a. to retain and to oblige the recipients of the Work to retain all copyright, patent, trade mark and name credit notices in the Contributions - in the form as distributed - with the exception of those notices that do not pertain to any part of the distributed Contributions; +b. to grant the Contributor a license to the rights in the distributed Work that contains the Contributor’s Contributions, corresponding to Sections 2 and 3 above. + +8 Contributor’s assumption of the role of Committer +If the Open Logistics Foundation under a separate agreement assigns the role of a Committer to the Contributor and the Contributor accepts the role, the Contributor must comply with the guidelines, policies and codes of conduct imposed as part of the assignment. + +9 Limitation of liability +Except in cases of intent and gross negligence or causing personal injury, the Contributor, its legal representatives, trustees, officers and employees shall not be liable towards the Open Logistics Foundation for direct or indirect, material or immaterial losses of any kind arising from the use of the Contributions; this includes but is not limited to loss of goodwill, interruption of production, computer failures or errors, loss of data or economic losses, even if the Contributor has been made aware of the possibility of such losses. Notwithstanding the above, the Contributor shall only be liable under product liability law to the extent that the respective provisions are applicable to the Contributions. +Except in case of intent or gross negligence the Contributor, its legal representatives, trustees, officers and employees shall not be liable that any of the Contributions is free from any claim of infringement of any patent or any other intellectual property right owned by any third party, accurate, devoid of mistakes, complete and/or usable for any purpose. + +10 Other provisions + +(1) This CLA is governed by German law, excluding the UN Convention on Contracts for the International Sale of Goods (CISG). Exclusive place of jurisdiction for all disputes between the parties regarding + the interpretation of this CLA is Dortmund. This CLA or any provision thereof may be amended or modified only with the mutual consent of the contracting parties as set out in a written instrument. This requirement of written form can only be deviated from in writing. + +(2) Any failure by the Open Logistics Foundation or the Contributor to insist that the other Party adhere to a provision of this CLA in a given situation does not affect the right of such Party to require adherence in the same regard at a later date. Waiving compliance with a provision in one situation shall not be deemed a waiver of compliance with that provision in the future or as a waiver of the provision in its entirety. + +(3) If any provision of this CLA should prove to be invalid and unenforceable, then the validity of the remaining provisions shall remain unaffected. In this case, that provision will be replaced, as far as possible, by an enforceable provision that most closely reflects the meaning of the original provision. + +Location: +Date: +Signature: +Title and name: +Position and corporation: + +***** +Initial list of designated employees. The authorization is not tied to particular Contributions. +Full Name +E-Mail + +It is your responsibility to notify the Foundation when any change is required to the list of designated employees authorized to submit Contributions on behalf of the Corporation, or to the Corporation's Point of Contact with the Foundation. + +Open Logistics Foundation Emil-Figge-Straße 80 | D-44227 Dortmund | Germany +BoardJochen Thewes – Chairman | Stefan Hohm and Dr. Stephan Peters – Deputy Chairmen +Managing Directors Andreas Nettsträter | Thorsten Hülsmann +Cheques and transfers payable to Sparkasse Dortmund | IBAN DE63440501990001146017 | BIC (Swift Code) DORTDE33XXX VAT Ident no. DE350640517 | Tax no. 315/5704/0848 | Supervisory authority Bezirksregierung Arnsberg \ No newline at end of file diff --git a/src/licensedcode/data/licenses/olf-ccla-1.0.yml b/src/licensedcode/data/licenses/olf-ccla-1.0.yml new file mode 100644 index 00000000000..848163b8df2 --- /dev/null +++ b/src/licensedcode/data/licenses/olf-ccla-1.0.yml @@ -0,0 +1,13 @@ +key: olf-ccla-1.0 +short_name: OLF-CCLA-1.0 +name: Open Logistics Foundation Corporate Contributor CLA 1.0 +category: Patent License +owner: Open Logistics Foundation +homepage_url: https://www.openlogisticsfoundation.org/licenses +spdx_license_key: LicenseRef-scancode-olf-ccla-1.0 +ignorable_authors: + - the Open Logistics Foundation +ignorable_urls: + - https://www.openlogisticsfoundation.org/licenses +ignorable_emails: + - info@openlogisticsfoundation.org diff --git a/src/licensedcode/data/licenses/oll-1.0.LICENSE b/src/licensedcode/data/licenses/oll-1.0.LICENSE new file mode 100644 index 00000000000..189f7ad2a58 --- /dev/null +++ b/src/licensedcode/data/licenses/oll-1.0.LICENSE @@ -0,0 +1,237 @@ +Open Logistics License +Version 1.0, March 2022 +https://www.openlogisticsfoundation.org/licenses/ + +TERMS AND CONDITIONS FOR THE USE, REPRODUCTION AND DISTRIBUTION + +ß1 Definitions + +(1) "Subject Matter of the License" means the copyrighted works of the software +components in source code or object code as well as the other components +protected under copyright, design and/or patent law which are made available +under this license in accordance with a copyright notice inserted into or +attached to the work as well as the application and user documentation. + +(2) "License" means the terms and conditions for the use, reproduction and +distribution of the Subject Matter of the License in accordance with the +provisions of this document. + +(3) "Licensor(s)" means the copyright holder(s) or the entity authorised by law +or contract by the copyright holder(s) to grant the license. + +(4) "You" (or "Your") means a natural or legal person exercising the +permissions granted by this License. + +(5) "Source Code" means the version of the code of the software components of +the Subject Matter of the License in the programming language. + +(6) "Object Code" means the interim product after compilation or interpretation +of the Source Code. + +(7) "Derivative Works" shall mean any work, whether in Source or Object Code or +any other form, that is based on (or derived from) the Subject Matter of the +License and for which the editorial revisions, annotations, elaborations, or +other modifications represent, as a whole, an original work of authorship. For +the purposes of this License, Derivative Works shall not include works that +remain separable from, or merely link (or bind by name) to the interfaces of, +the Subject Matter of the License and Derivative Works thereof. + +(8) "Contribution" means any proprietary work, including the original version +of the Subject Matter of the License and any changes or additions to such work, +or Derivative Works of such work, that the copyright holder, or a natural or +legal person authorised to make submissions, intentionally submits to the +Licensor or one of the Licensors to be incorporated into the Subject Matter of +the License. For the purposes of this definition, "submit" means any form of +electronic or written communication which is sent to the Licensor (or one of +the Licensors) or its representatives to discuss or improve the Subject Matter +of the License, including, but not limited to, communications sent via +electronic mailing lists, source code control systems and issue tracking +systems; however, communications that are clearly labelled as "no contribution" +by the copyright holder or otherwise identified as such in writing are +excluded. + +(9) "Contributor" means the Licensor and/or any natural or legal person on +whose behalf the Licensor receives any Contribution subsequently incorporated +into the Subject Matter of the License. + +ß2 Granting of usage rights + +Subject to the terms and conditions of this License and compliance with the +provisions of this License, You are hereby granted by all Contributors, for the +term of the copyrights in the Subject Matter of the License, the + +- royalty-free and non-exclusive, +- sub-licensable for commercial and non-commercial purposes, +- worldwide and perpetual, +- irrevocable and non-terminable + +right + +- to use in any hardware and software environment, - with regard to the + software and data components - in particular to store or load it permanently + or temporarily, to display it and run it, including to the extent + reproductions are necessary to that end, +- to modify, interpret, edit or redesign in another way, +- to store, reproduce, exhibit, publish, distribute in tangible or intangible + form, on any medium or in any other way, for commercial and non-commercial + purposes, in particular to communicate privately or publicly, also through + image, audio and other information carriers, irrespective of whether by wire + or wireless means, +- to use in databases, data networks and online services, including the right + to make the software and data components of the Subject Matter of the License + available in source code or object code to users of the aforementioned + databases, networks and online services for research and retrieval purposes, +- to allow third parties to use or operate, +- to use for own purposes but also to provide services to third parties, +- to distribute + +the Subject Matter of the License in its original or modified, interpreted, +edited or redesigned form. + +This right of use relates to the Subject Matter of the License in particular +its source code and object code of the software components in all forms +(including - where applicable - design rights). + +ß3 Grant of a patent license + +Subject to the terms and conditions of this License and compliance with the +provisions of this License, You are hereby granted by each Contributor a + +- perpetual, +- worldwide, +- non-exclusive, +- free of charge, +- irrevocable (with the exception of the restrictions set out in this + Section 3) + +patent license in all rights deriving from the patents, owned and licensable by +the Contributor at the time of the submission of the Contribution, to + +- produce, +- have produced, +- use, +- offer for sale, +- sell, +- import and otherwise transfer + +the Subject Matter of the License. + +However, this patent license covers only those rights deriving from the patents +of the respective Contributors as are indispensable in order not to infringe +that patent and only to the extent that the use of the Contributor's respective +Contributions, whether in itself or as a combination with other Contributions +of the Contributors or any third parties together with the Subject Matter of +the License for which these Contributions were submitted, would otherwise +infringe that patent. For avoidance of doubt, no patent licenses are granted +for the use of the Subject Matter of the License or the Contributions which +become necessary for lawful use because third party modifications are made to +the Subject Matter of the License or the respective Contributions after the +Contributions has been submitted by the Contributors. Under no circumstances +will anything in this Section 3 be construed as granting, by implication, +estoppel or otherwise, a license to any patent for which the respective +Contributors have not granted patent rights when they submitted their +respective Contributions. + +In the event that You institute judicial patent proceedings against any entity +or person (including a counterclaim or countersuit in a legal dispute), arguing +that the Subject Matter of the License or a Contribution incorporated or +contained therein constitutes a patent infringement or a contributory factor to +a patent infringement, all patent licenses which have been granted to You under +this License for the Subject Matter of the License as well as this License in +itself shall be deemed terminated as of the date on which the action is filed. + +For avoidance of doubt, the Contributors are entitled to decide in their own +discretion to abandon respectively maintain any patent designated by patent +number upon delivery of the Subject Matter of the License. + +ß4 Distribution + +You may reproduce and distribute copies of the Subject Matter of the License or +Derivative Works on any medium, with or without modifications, (with regard to +software components) in Source or Object Code, provided that You comply with +the following rules: + +- You must provide all other recipients of the Subject Matter of the License or + of Derivative Works with a copy of this License and inform them that the + Subject Matter of the License was originally licensed under this License. +- You must ensure that modified files contain prominent notices indicating that + You have modified the files. +- You must retain all copyright, patent, trademark and name credit notices in + the Subject Matter of the License in the source code of any Derivative Works + You distribute, with the exception of those notices which do not belong to + any part of the Derivative Works. +- You must oblige the recipients of the Subject Matter of the License or + Derivative Works to incorporate the provisions of this Section 4 into any + license under which they distribute the the Subject Matter of the License or + Derivative Works to any other recipients. + +You may add Your own copyright notices to Your modifications and state any +additional or different license conditions and conditions for the use, +reproduction or distribution of Your modifications or for these Derivative +Works as a whole, provided that Your use, reproduction and distribution of the +work in all other respects complies with the terms and conditions set out in +this License. + +ß5 Submission of Contributions + +Unless expressly stated otherwise, every Contribution that You have +intentionally submitted for inclusion in the Subject Matter of the License is +subject to this License without any additional terms or conditions applying. +Irrespective of the above, none of the terms or conditions contained herein may +be interpreted to replace or change the terms or conditions of a separate +licensing agreement that You may have concluded with a Licensor for such +Contributions, such as a so-called "Contributor License Agreement" (CLA). + +ß6 Trademarks + +This License does not grant permission to use the trade names, trademarks, +service marks or product names of the Licensor or of a Contributor. + +ß7 Limited warranty + +This License is granted free of charge and thus constitutes a gift. +Accordingly, any warranty is excluded. Work on the Subject Matter of the +License continues on an ongoing basis; it is constantly improved by countless +Contributors. The Subject Matter of the License is not completed and may +therefore contain errors ("bugs") or additional patents of Contributors or +third parties, as is inherent to this type of development. + +ß8 Limitation of liability + +Except in cases of intent and gross negligence or causing personal injury, the +Contributors, their legal representatives, trustees, officers and employees +shall not be liable for direct or indirect, material or immaterial loss or +damage of any kind arising from the License or the use of the Subject Matter of +the License; this applies, among other things, but not exclusively, to loss of +goodwill, loss of production, computer failures or errors, loss of data or +economic loss or damage, even if the Contributor has been notified of the +possibility of such loss or damage. Irrespective of the above, the Licensor +shall only be liable in the scope of statutory product liability, to the extent +the respective provisions are applicable to the Subject Matter of the License +or the Contribution. + +Except in the case of intent, the Contributors, their legal representatives, +trustees, officers and employees shall not be liable that any of the +Contributions are free from any claim of infringement of any patent or any +other intellectual property right owned by any third party, accurate, devoid of +mistakes, complete and/or usable for any purpose. + +ß9 Provision of warranties or assumption of additional liability in the event +of distribution of the Subject Matter of the License + +In the event of distribution of the Subject Matter of the License or Derivative +Works, You are free to assume support, warranty, indemnity or other liability +obligations and/or rights in accordance with this License and to charge a fee +in return. However, in accepting such obligations, You may act only on Your own +behalf and on Your sole responsibility, not on behalf of any other Contributor, +and You hereby agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +ß10 Applicable law + +This License is governed by German law with the exclusion of its provisions on +the conflict of laws and with the exclusion of the UN Convention on Contracts +for the International Sale of Goods (CISG). + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/src/licensedcode/data/licenses/oll-1.0.yml b/src/licensedcode/data/licenses/oll-1.0.yml new file mode 100644 index 00000000000..479ca530c61 --- /dev/null +++ b/src/licensedcode/data/licenses/oll-1.0.yml @@ -0,0 +1,9 @@ +key: oll-1.0 +short_name: OLL-1.0 +name: Open Logistics License Version 1.0 +category: Permissive +owner: Open Logistics Foundation +homepage_url: https://www.openlogisticsfoundation.org/licenses/ +spdx_license_key: LicenseRef-scancode-oll-1.0 +ignorable_urls: + - https://www.openlogisticsfoundation.org/licenses/ From 0ae0b06d7d1a264bb11d43d3d48488f3a07da6ad Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 14 Sep 2022 00:57:41 +0200 Subject: [PATCH 29/54] Update CHANGELOG Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aa34f91bbf3..2d5d95c40c3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -55,6 +55,14 @@ License detection: as an option. +v31.2.0 - 2022-09-02 +---------------------------------- + +This is a minor release with small bug fixes and minor feature updates. + +- Update SPDX license list to 3.18 +- Improve how we discard license matches that are "gibberish" +- And new and improve existing license and license rules v31.1.1 - 2022-09-02 From 27d10852c9c45e65867e117a49b3cb888ce07b51 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 19 Sep 2022 16:45:03 +0530 Subject: [PATCH 30/54] Update plugins docs and fix links Reference: https://github.com/nexB/scancode-toolkit/issues/3103 Signed-off-by: Ayan Sinha Mahapatra --- docs/scripts/sphinx_build_link_check.sh | 0 docs/source/misc/faq.rst | 2 +- .../how_to_add_a_post_scan_plugin.rst | 86 +++++++++++++++---- 3 files changed, 72 insertions(+), 16 deletions(-) mode change 100644 => 100755 docs/scripts/sphinx_build_link_check.sh diff --git a/docs/scripts/sphinx_build_link_check.sh b/docs/scripts/sphinx_build_link_check.sh old mode 100644 new mode 100755 diff --git a/docs/source/misc/faq.rst b/docs/source/misc/faq.rst index 3456b09b83e..2ec5fa6d085 100644 --- a/docs/source/misc/faq.rst +++ b/docs/source/misc/faq.rst @@ -68,7 +68,7 @@ Can I install ScanCode in a Unicode path? ----------------------------------------- Yes but but it is best to void this for now. See -https://github.com/nexB/scancode- toolkit/issues/867 +https://github.com/nexB/scancode-toolkit/issues/867 There is a bug in virtualenv https://github.com/pypa/virtualenv/issues/457 that is now fixed but has not been extensively tested for ScanCode. diff --git a/docs/source/tutorials/how_to_add_a_post_scan_plugin.rst b/docs/source/tutorials/how_to_add_a_post_scan_plugin.rst index b2b0873cdc5..ea6aa728f3a 100644 --- a/docs/source/tutorials/how_to_add_a_post_scan_plugin.rst +++ b/docs/source/tutorials/how_to_add_a_post_scan_plugin.rst @@ -3,14 +3,71 @@ Add A Post-Scan Plugin ====================== +Scan plugins in ``scancode-toolkit`` +------------------------------------ + +A lot of scancode features are built-in plugins which are present with scancode-toolkit source code +and are usually enabled via the different scancode-toolkit CLI options and are grouped by the types +of plugins. + +Here are the major types of plugins: + +1. Pre-scan plugins (`scancode_pre_scan` in entry points) + + These plugins are run before the main scanning steps and are usually + filtering of input files, or file classification steps, on whose results + the main scan plugins depend on. The base plugin class to be extended is ``PreScanPlugin`` at + `/src/plugincode/pre_scan.py `_. + +2. Scan plugins (`scancode_scan` in entry points) + + The are the scancode plugins which does the file scanning for useful + information like license, copyrights, packages and others. These are + run on multiprocessing for speed as they are done on a per-file basis, + but there can also be post-processing steps on these which are run afterwards + and have access to all the per-file scan results. The base plugin class to be extended is + ``ScanPlugin`` at `/src/plugincode/scan.py `_. + +3. Post-scan plugins (`scancode_post_scan` in entry points) + + These are mainly data processing, summerizing and reporting plugins which + depend on all the results for the scan plugins. These add new codebase level + or file-level attributes, and even removes/modifies data as required + for consolidation or summarization. The base plugin class to be extended is ``PostScanPlugin`` + at `/src/plugincode/post_scan.py `_. + +4. Output plugins (`scancode_output` in entry points) + + Supported output options in scancode-toolkit are all plugins and + these can also be multiple output options selected. These convert, process + and writes the data in the specific file format as the output of the scanning + procedures. The base plugin class to be extended is ``OutputPlugin`` at + `/src/plugincode/output.py `_. + +5. Output Filter Plugins (`scancode_output_filter` in entry points) + + There are also output filter plugins which apply filters to the outputs + and is modified. These filters can be based on whether resources had any + detections, ignorables present in licenses and others. + The base plugin class to be extended is ``OutputFilterPlugin`` at + `/src/plugincode/output_filter.py `_. + +6. Location Provider Plugins + + These plugins provide pre-built binary libraries and utilities and their locations which + are packaged to be used in scancode-toolkit. The base plugin class to be extended is + ``LocationProviderPlugin`` at `/src/plugincode/location_provider.py `_. + + Built-In vs. Optional Installation ---------------------------------- Built-In ^^^^^^^^ -Some post-scan plugins are installed when ScanCode itself is installed, e.g., the -:ref:`license_policy_plugin`, whose code is located here:: +Some post-scan plugins are installed when ScanCode itself is installed, and they are specified at +``[options.entry_points]`` in the `setup.cfg `_ file. +For example, the :ref:`license_policy_plugin` is a built-in plugin, whose code is located here:: https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/plugin_license_policy.py @@ -23,7 +80,7 @@ Optional ScanCode is also designed to use post-scan plugins that must be installed separately from the installation of ScanCode. The code for this sort of plugin is located here:: - https://github.com/nexB/scancode-toolkit/tree/develop/plugins/ + https://github.com/nexB/scancode-plugins This wiki page will focus on optional post-scan plugins. @@ -45,18 +102,17 @@ We'll start by creating three folders: 1. Top-level folder -- ``/scancode-hello/`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- In the ``/scancode-toolkit/plugins/`` directory, add a folder with a relevant name, e.g., - ``scancode-hello``. This folder will hold all of your plugin code. +- In the ``scancode-plugins`` repository, in the ``misc`` directory, add a folder with + a relevant name, e.g., ``scancode-hello``. This folder will hold all of your plugin code. - Inside the ``/scancode-hello/`` folder you'll need to add a folder named ``src`` and 7 files. - -1. ``/src/`` -- This folder will contain your primary Python code and is discussed in more detail - in the following section. + ``/src/`` -- This folder will contain your primary Python code and is discussed in more detail + in the following section. The 7 Files are: 1. ``.gitignore`` -- See, e.g., - `/plugins/scancode-ignore-binaries/.gitignore `_ + `/scancode-ignore-binaries/.gitignore `_ :: @@ -64,7 +120,7 @@ The 7 Files are: /dist/ 2. ``apache-2.0.LICENSE`` -- See, e.g., - `/plugins/scancode-ignore-binaries/apache-2.0.LICENSE `_ + `/scancode-ignore-binaries/apache-2.0.LICENSE `_ 3. ``MANIFEST.in`` @@ -83,7 +139,7 @@ The 7 Files are: global-exclude *.py[co] __pycache__ *.*~ 4. ``NOTICE`` -- See, e.g., - `/plugins/scancode-ignore-binaries/NOTICE `__ + `/scancode-ignore-binaries/NOTICE `__ 5. ``README.md`` @@ -129,7 +185,7 @@ The 7 Files are: long_description=desc, author='nexB', author_email='info@aboutcode.org', - url='https://github.com/nexB/scancode-toolkit/plugins/scancode-categories', + url='https://github.com/nexB/scancode-plugins/blob/main/misc/scancode-hello/', packages=find_packages('src'), package_dir={'': 'src'}, py_modules=[splitext(basename(path))[0] for path in glob('src/*.py')], @@ -201,11 +257,11 @@ Create a ``PostScanPlugin`` class """"""""""""""""""""""""""""""""" The ``PostScanPlugin`` class -`PostScanPlugin code `_) +`PostScanPlugin code `_) inherits from the ``CodebasePlugin`` class (see -`CodebasePlugin code `_), +`CodebasePlugin code `_), which inherits from the ``BasePlugin`` class (see -`BasePlugin code `_). +`BasePlugin code `_). :: From cd3b84df20b4baac13ac647a6ec0afc3344e8299 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 22 Sep 2022 14:24:38 +0530 Subject: [PATCH 31/54] Fix summary bug without holders #3109 - Fix bug where we were looking for holders in resources without checking if the copyright option was enabled. - Added a test case that was failing without the fix, same as the reported bug. Reference: https://github.com/nexB/scancode-toolkit/issues/3109 Reported-by: https://github.com/bwjohnson-ss Signed-off-by: Ayan Sinha Mahapatra --- src/summarycode/summarizer.py | 4 + .../pip-22.0.4/AUTHORS.txt | 661 ++++ .../pip-22.0.4/LICENSE.txt | 20 + .../pip-22.0.4/MANIFEST.in | 37 + .../pip-22.0.4/NEWS.rst | 3383 +++++++++++++++++ .../pip-22.0.4/PKG-INFO | 90 + .../pip-22.0.4/README.rst | 62 + .../pip-22.0.4/docs/requirements.txt | 11 + .../pip-22.0.4/pyproject.toml | 71 + .../pip-22.0.4/setup.cfg | 92 + .../pip-22.0.4/setup.py | 82 + .../pip-22.0.4/src/pip/__init__.py | 13 + .../pip-22.0.4/src/pip/__main__.py | 31 + .../pip-22.0.4/src/pip/py.typed | 4 + .../summary-without-holder-pypi.expected.json | 964 +++++ tests/summarycode/test_summarizer.py | 13 + 16 files changed, 5538 insertions(+) create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/AUTHORS.txt create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/LICENSE.txt create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/MANIFEST.in create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/NEWS.rst create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/PKG-INFO create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/README.rst create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/docs/requirements.txt create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/pyproject.toml create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.cfg create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.py create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__init__.py create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__main__.py create mode 100644 tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/py.typed create mode 100644 tests/summarycode/data/summary/summary_without_holder/summary-without-holder-pypi.expected.json diff --git a/src/summarycode/summarizer.py b/src/summarycode/summarizer.py index 2a45ad74dfa..4ead1f5f946 100644 --- a/src/summarycode/summarizer.py +++ b/src/summarycode/summarizer.py @@ -270,6 +270,10 @@ def get_origin_info_from_top_level_packages(top_level_packages, codebase): key_file_resource = codebase.get_resource(path=datafile_path) if not key_file_resource: continue + + if not hasattr(key_file_resource, 'holders'): + break + holders = [h['holder'] for h in key_file_resource.holders] declared_holders.extend(holders) # Normalize holder names before collecting them diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/AUTHORS.txt b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/AUTHORS.txt new file mode 100644 index 00000000000..bcca65bf521 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/AUTHORS.txt @@ -0,0 +1,661 @@ +@Switch01 +A_Rog +Aakanksha Agrawal +Abhinav Sagar +ABHYUDAY PRATAP SINGH +abs51295 +AceGentile +Adam Chainz +Adam Tse +Adam Wentz +admin +Adrien Morison +ahayrapetyan +Ahilya +AinsworthK +Akash Srivastava +Alan Yee +Albert Tugushev +Albert-Guan +albertg +Alberto Sottile +Aleks Bunin +Alethea Flowers +Alex Gaynor +Alex Grönholm +Alex Hedges +Alex Loosley +Alex Morega +Alex Stachowiak +Alexander Shtyrov +Alexandre Conrad +Alexey Popravka +Alli +Ami Fischman +Ananya Maiti +Anatoly Techtonik +Anders Kaseorg +Andre Aguiar +Andreas Lutro +Andrei Geacar +Andrew Gaul +Andrey Bienkowski +Andrey Bulgakov +Andrés Delfino +Andy Freeland +Andy Kluger +Ani Hayrapetyan +Aniruddha Basak +Anish Tambe +Anrs Hu +Anthony Sottile +Antoine Musso +Anton Ovchinnikov +Anton Patrushev +Antonio Alvarado Hernandez +Antony Lee +Antti Kaihola +Anubhav Patel +Anudit Nagar +Anuj Godase +AQNOUCH Mohammed +AraHaan +Arindam Choudhury +Armin Ronacher +Artem +Arun Babu Neelicattu +Ashley Manton +Ashwin Ramaswami +atse +Atsushi Odagiri +Avinash Karhana +Avner Cohen +Baptiste Mispelon +Barney Gale +barneygale +Bartek Ogryczak +Bastian Venthur +Ben Bodenmiller +Ben Darnell +Ben Hoyt +Ben Mares +Ben Rosser +Bence Nagy +Benjamin Peterson +Benjamin VanEvery +Benoit Pierre +Berker Peksag +Bernard +Bernard Tyers +Bernardo B. Marques +Bernhard M. Wiedemann +Bertil Hatt +Bhavam Vidyarthi +Blazej Michalik +Bogdan Opanchuk +BorisZZZ +Brad Erickson +Bradley Ayers +Brandon L. Reiss +Brandt Bucher +Brett Randall +Brian Cristante +Brian Rosner +briantracy +BrownTruck +Bruno Oliveira +Bruno Renié +Bruno S +Bstrdsmkr +Buck Golemon +burrows +Bussonnier Matthias +bwoodsend +c22 +Caleb Martinez +Calvin Smith +Carl Meyer +Carlos Liam +Carol Willing +Carter Thayer +Cass +Chandrasekhar Atina +Chih-Hsuan Yen +Chris Brinker +Chris Hunt +Chris Jerdonek +Chris McDonough +Chris Pawley +Chris Wolfe +Christian Clauss +Christian Heimes +Christian Oudard +Christoph Reiter +Christopher Hunt +Christopher Snyder +cjc7373 +Clark Boylan +Clay McClure +Cody +Cody Soyland +Colin Watson +Connor Osborn +Cooper Lees +Cooper Ry Lees +Cory Benfield +Cory Wright +Craig Kerstiens +Cristian Sorinel +Cristina +Cristina Muñoz +Curtis Doty +cytolentino +Daan De Meyer +Damian +Damian Quiroga +Damian Shaw +Dan Black +Dan Savilonis +Dan Sully +Dane Hillard +daniel +Daniel Collins +Daniel Hahler +Daniel Holth +Daniel Jost +Daniel Katz +Daniel Shaulov +Daniele Esposti +Daniele Procida +Danny Hermes +Danny McClanahan +Darren Kavanagh +Dav Clark +Dave Abrahams +Dave Jones +David Aguilar +David Black +David Bordeynik +David Caro +David D Lowe +David Evans +David Hewitt +David Linke +David Poggi +David Pursehouse +David Tucker +David Wales +Davidovich +Deepak Sharma +Deepyaman Datta +Denise Yu +derwolfe +Desetude +Devesh Kumar Singh +Diego Caraballo +Diego Ramirez +DiegoCaraballo +Dimitri Merejkowsky +Dirk Stolle +Dmitry Gladkov +Dmitry Volodin +Domen Kožar +Dominic Davis-Foster +Donald Stufft +Dongweiming +Douglas Thor +DrFeathers +Dustin Ingram +Dwayne Bailey +Ed Morley +Ee Durbin +Eitan Adler +ekristina +elainechan +Eli Schwartz +Elisha Hollander +Ellen Marie Dash +Emil Burzo +Emil Styrke +Emmanuel Arias +Endoh Takanao +enoch +Erdinc Mutlu +Eric Cousineau +Eric Gillingham +Eric Hanchrow +Eric Hopper +Erik M. Bray +Erik Rose +Erwin Janssen +Eugene Vereshchagin +everdimension +Felix Yan +fiber-space +Filip Kokosiński +Filipe Laíns +Florian Briand +Florian Rathgeber +Francesco +Francesco Montesano +Frost Ming +Gabriel Curio +Gabriel de Perthuis +Garry Polley +gdanielson +Geoffrey Sneddon +George Song +Georgi Valkov +ghost +Giftlin Rajaiah +gizmoguy1 +gkdoc +Gopinath M +GOTO Hayato +gousaiyang +gpiks +Greg Roodt +Greg Ward +Guilherme Espada +gutsytechster +Guy Rozendorn +Guy Tuval +gzpan123 +Hanjun Kim +Hari Charan +Harsh Vardhan +harupy +Harutaka Kawamura +Henry Schreiner +Herbert Pfennig +Hsiaoming Yang +Hugo Lopes Tavares +Hugo van Kemenade +Hynek Schlawack +Ian Bicking +Ian Cordasco +Ian Lee +Ian Stapleton Cordasco +Ian Wienand +Igor Kuzmitshov +Igor Sobreira +Ilan Schnell +Illia Volochii +Ilya Baryshev +Inada Naoki +Ionel Cristian Mărieș +Ionel Maries Cristian +Ivan Pozdeev +Jacob Kim +Jacob Walls +jakirkham +Jakub Stasiak +Jakub Vysoky +Jakub Wilk +James Cleveland +James Curtin +James Firth +James Gerity +James Polley +Jan Pokorný +Jannis Leidel +jarondl +Jason R. Coombs +Jay Graves +Jean-Christophe Fillion-Robin +Jeff Barber +Jeff Dairiki +Jelmer Vernooij +jenix21 +Jeremy Stanley +Jeremy Zafran +Jesse Rittner +Jiashuo Li +Jim Fisher +Jim Garrison +Jivan Amara +Joe Michelini +John Paton +John T. Wodder II +John-Scott Atlakson +johnthagen +Jon Banafato +Jon Dufresne +Jon Parise +Jonas Nockert +Jonathan Herbert +Joost Molenaar +Jorge Niedbalski +Joseph Bylund +Joseph Long +Josh Bronson +Josh Hansen +Josh Schneier +Juanjo Bazán +Julian Berman +Julian Gethmann +Julien Demoor +Jussi Kukkonen +jwg4 +Jyrki Pulliainen +Kai Chen +Kamal Bin Mustafa +kaustav haldar +keanemind +Keith Maxwell +Kelsey Hightower +Kenneth Belitzky +Kenneth Reitz +Kevin Burke +Kevin Carter +Kevin Frommelt +Kevin R Patterson +Kexuan Sun +Kit Randel +Klaas van Schelven +KOLANICH +kpinc +Krishna Oza +Kumar McMillan +Kyle Persohn +lakshmanaram +Laszlo Kiss-Kollar +Laurent Bristiel +Laurent LAPORTE +Laurie O +Laurie Opperman +layday +Leon Sasson +Lev Givon +Lincoln de Sousa +Lipis +Loren Carvalho +Lucas Cimon +Ludovic Gasc +Lukas Juhrich +Luke Macken +Luo Jiebin +luojiebin +luz.paz +László Kiss Kollár +Marc Abramowitz +Marc Tamlyn +Marcus Smith +Mariatta +Mark Kohler +Mark Williams +Markus Hametner +Martey Dodoo +Martin Häcker +Martin Pavlasek +Masaki +Masklinn +Matej Stuchlik +Mathew Jennings +Mathieu Bridon +Matt Bacchi +Matt Good +Matt Maker +Matt Robenolt +matthew +Matthew Einhorn +Matthew Gilliard +Matthew Iversen +Matthew Trumbell +Matthew Willson +Matthias Bussonnier +mattip +Maurits van Rees +Max W Chase +Maxim Kurnikov +Maxime Rouyrre +mayeut +mbaluna +mdebi +memoselyk +meowmeowcat +Michael +Michael Aquilina +Michael E. Karpeles +Michael Klich +Michael Williamson +michaelpacer +Michał Górny +Mickaël Schoentgen +Miguel Araujo Perez +Mihir Singh +Mike +Mike Hendricks +Min RK +MinRK +Miro Hrončok +Monica Baluna +montefra +Monty Taylor +Nadav Wexler +Nate Coraor +Nate Prewitt +Nathan Houghton +Nathaniel J. Smith +Nehal J Wani +Neil Botelho +Nguyễn Gia Phong +Nicholas Serra +Nick Coghlan +Nick Stenning +Nick Timkovich +Nicolas Bock +Nicole Harris +Nikhil Benesch +Nikita Chepanov +Nikolay Korolev +Nipunn Koorapati +Nitesh Sharma +Niyas Sait +Noah +Noah Gorny +Nowell Strite +NtaleGrey +nvdv +OBITORASU +Ofek Lev +ofrinevo +Oliver Jeeves +Oliver Mannion +Oliver Tonnhofer +Olivier Girardot +Olivier Grisel +Ollie Rutherfurd +OMOTO Kenji +Omry Yadan +onlinejudge95 +Oren Held +Oscar Benjamin +Oz N Tiram +Pachwenko +Patrick Dubroy +Patrick Jenkins +Patrick Lawson +patricktokeeffe +Patrik Kopkan +Paul Kehrer +Paul Moore +Paul Nasrat +Paul Oswald +Paul van der Linden +Paulus Schoutsen +Pavel Safronov +Pavithra Eswaramoorthy +Pawel Jasinski +Paweł Szramowski +Pekka Klärck +Peter Gessler +Peter Lisák +Peter Waller +petr-tik +Phaneendra Chiruvella +Phil Elson +Phil Freo +Phil Pennock +Phil Whelan +Philip Jägenstedt +Philip Molloy +Philippe Ombredanne +Pi Delport +Pierre-Yves Rofes +pip +Prabakaran Kumaresshan +Prabhjyotsing Surjit Singh Sodhi +Prabhu Marappan +Pradyun Gedam +Prashant Sharma +Pratik Mallya +Preet Thakkar +Preston Holmes +Przemek Wrzos +Pulkit Goyal +q0w +Qiangning Hong +Quentin Lee +Quentin Pradet +R. David Murray +Rafael Caricio +Ralf Schmitt +Razzi Abuissa +rdb +Reece Dunham +Remi Rampin +Rene Dudfield +Riccardo Magliocchetti +Richard Jones +Richard Si +Ricky Ng-Adam +RobberPhex +Robert Collins +Robert McGibbon +Robert T. McGibbon +robin elisha robinson +Roey Berman +Rohan Jain +Roman Bogorodskiy +Romuald Brunet +Ronny Pfannschmidt +Rory McCann +Ross Brattain +Roy Wellington Ⅳ +Ruairidh MacLeod +Ryan Wooden +ryneeverett +Sachi King +Salvatore Rinchiera +Savio Jomton +schlamar +Scott Kitterman +Sean +seanj +Sebastian Jordan +Sebastian Schaetz +Segev Finer +SeongSoo Cho +Sergey Vasilyev +Seth Woodworth +shireenrao +Shlomi Fish +Shovan Maity +Simeon Visser +Simon Cross +Simon Pichugin +sinoroc +sinscary +snook92 +socketubs +Sorin Sbarnea +Srinivas Nyayapati +Stavros Korokithakis +Stefan Scherfke +Stefano Rivera +Stephan Erb +stepshal +Steve (Gadget) Barnes +Steve Barnes +Steve Dower +Steve Kowalik +Steven Myint +stonebig +Stéphane Bidoul +Stéphane Bidoul (ACSONE) +Stéphane Klein +Sumana Harihareswara +Surbhi Sharma +Sviatoslav Sydorenko +Swat009 +Sylvain +Takayuki SHIMIZUKAWA +Taneli Hukkinen +tbeswick +Thijs Triemstra +Thomas Fenzl +Thomas Grainger +Thomas Guettler +Thomas Johansson +Thomas Kluyver +Thomas Smith +Tim D. Smith +Tim Gates +Tim Harder +Tim Heap +tim smith +tinruufu +Tom Forbes +Tom Freudenheim +Tom V +Tomas Hrnciar +Tomas Orsava +Tomer Chachamu +Tony Beswick +Tony Zhaocheng Tan +TonyBeswick +toonarmycaptain +Toshio Kuratomi +toxinu +Travis Swicegood +Tushar Sadhwani +Tzu-ping Chung +Valentin Haenel +Victor Stinner +victorvpaulo +Vikram - Google +Viktor Szépe +Ville Skyttä +Vinay Sajip +Vincent Philippon +Vinicyus Macedo +Vipul Kumar +Vitaly Babiy +Vladimir Rutsky +W. Trevor King +Wil Tan +Wilfred Hughes +William ML Leslie +William T Olson +Wilson Mo +wim glenn +Winson Luk +Wolfgang Maier +XAMES3 +Xavier Fernandez +xoviat +xtreak +YAMAMOTO Takashi +Yen Chi Hsuan +Yeray Diaz Diaz +Yoval P +Yu Jian +Yuan Jing Vincent Yan +Zearin +Zhiping Deng +ziebam +Zvezdan Petkovic +Łukasz Langa +Семён Марьясин +‮rekcäH nitraM‮ diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/LICENSE.txt b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/LICENSE.txt new file mode 100644 index 00000000000..8e7b65eaf62 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2008-present The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/MANIFEST.in b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/MANIFEST.in new file mode 100644 index 00000000000..07699ddd6e6 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/MANIFEST.in @@ -0,0 +1,37 @@ +include AUTHORS.txt +include LICENSE.txt +include NEWS.rst +include README.rst +include pyproject.toml + +include src/pip/_vendor/README.rst +include src/pip/_vendor/vendor.txt +include src/pip/_vendor/pyparsing/diagram/template.jinja2 +recursive-include src/pip/_vendor *LICENSE* +recursive-include src/pip/_vendor *COPYING* + +include docs/docutils.conf +include docs/requirements.txt + +exclude .coveragerc +exclude .mailmap +exclude .appveyor.yml +exclude .readthedocs.yml +exclude .pre-commit-config.yaml +exclude tox.ini +exclude noxfile.py + +recursive-include src/pip/_vendor *.pem +recursive-include src/pip/_vendor py.typed +recursive-include docs *.css *.py *.rst *.md + +exclude src/pip/_vendor/six +exclude src/pip/_vendor/six/moves +recursive-exclude src/pip/_vendor *.pyi + +prune .github +prune docs/build +prune news +prune tasks +prune tests +prune tools diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/NEWS.rst b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/NEWS.rst new file mode 100644 index 00000000000..5f274c0ef7f --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/NEWS.rst @@ -0,0 +1,3383 @@ +.. note + + You should *NOT* be adding new change log entries to this file, this + file is managed by towncrier. You *may* edit previous change logs to + fix problems like typo corrections or such. + + To add a new change log entry, please see + https://pip.pypa.io/en/latest/development/contributing/#news-entries + +.. towncrier release notes start + +22.0.4 (2022-03-06) +=================== + +Deprecations and Removals +------------------------- + +- Drop the doctype check, that presented a warning for index pages that use non-compliant HTML 5. (`#10903 `_) + +Vendored Libraries +------------------ + +- Downgrade distlib to 0.3.3. + + +22.0.3 (2022-02-03) +=================== + +Features +-------- + +- Print the exception via ``rich.traceback``, when running with ``--debug``. (`#10791 `_) + +Bug Fixes +--------- + +- Only calculate topological installation order, for packages that are going to be installed/upgraded. + + This fixes an `AssertionError` that occured when determining installation order, for a very specific combination of upgrading-already-installed-package + change of dependencies + fetching some packages from a package index. This combination was especially common in Read the Docs' builds. (`#10851 `_) +- Use ``html.parser`` by default, instead of falling back to ``html5lib`` when ``--use-deprecated=html5lib`` is not passed. (`#10869 `_) + +Improved Documentation +---------------------- + +- Clarify that using per-requirement overrides disables the usage of wheels. (`#9674 `_) + + +22.0.2 (2022-01-30) +=================== + +Deprecations and Removals +------------------------- + +- Instead of failing on index pages that use non-compliant HTML 5, print a deprecation warning and fall back to ``html5lib``-based parsing for now. This simplifies the migration for non-compliant index pages, by letting such indexes function with a warning. (`#10847 `_) + + +22.0.1 (2022-01-30) +=================== + +Bug Fixes +--------- + +- Accept lowercase ```` on index pages. (`#10844 `_) +- Properly handle links parsed by html5lib, when using ``--use-deprecated=html5lib``. (`#10846 `_) + + +22.0 (2022-01-29) +================= + +Process +------- + +- Completely replace :pypi:`tox` in our development workflow, with :pypi:`nox`. + +Deprecations and Removals +------------------------- + +- Deprecate alternative progress bar styles, leaving only ``on`` and ``off`` as available choices. (`#10462 `_) +- Drop support for Python 3.6. (`#10641 `_) +- Disable location mismatch warnings on Python versions prior to 3.10. + + These warnings were helping identify potential issues as part of the sysconfig -> distutils transition, and we no longer need to rely on reports from older Python versions for information on the transition. (`#10840 `_) + +Features +-------- + +- Changed ``PackageFinder`` to parse HTML documents using the stdlib :class:`html.parser.HTMLParser` class instead of the ``html5lib`` package. + + For now, the deprecated ``html5lib`` code remains and can be used with the ``--use-deprecated=html5lib`` command line option. However, it will be removed in a future pip release. (`#10291 `_) +- Utilise ``rich`` for presenting pip's default download progress bar. (`#10462 `_) +- Present a better error message when an invalid wheel file is encountered, providing more context where the invalid wheel file is. (`#10535 `_) +- Documents the ``--require-virtualenv`` flag for ``pip install``. (`#10588 `_) +- ``pip install `` autocompletes paths. (`#10646 `_) +- Allow Python distributors to opt-out from or opt-in to the ``sysconfig`` installation scheme backend by setting ``sysconfig._PIP_USE_SYSCONFIG`` to ``True`` or ``False``. (`#10647 `_) +- Make it possible to deselect tests requiring cryptography package on systems where it cannot be installed. (`#10686 `_) +- Start using Rich for presenting error messages in a consistent format. (`#10703 `_) +- Improve presentation of errors from subprocesses. (`#10705 `_) +- Forward pip's verbosity configuration to VCS tools to control their output accordingly. (`#8819 `_) + +Bug Fixes +--------- + +- Optimize installation order calculation to improve performance when installing requirements that form a complex dependency graph with a large amount of edges. (`#10557 `_) +- When a package is requested by the user for upgrade, correctly identify that the extra-ed variant of that same package depended by another user-requested package is requesting the same package, and upgrade it accordingly. (`#10613 `_) +- Prevent pip from installing yanked releases unless explicitly pinned via the ``==`` or ``===`` operators. (`#10617 `_) +- Stop backtracking on build failures, by instead surfacing them to the user and aborting immediately. This behaviour provides more immediate feedback when a package cannot be built due to missing build dependencies or platform incompatibility. (`#10655 `_) +- Silence ``Value for does not match`` warning caused by an erroneous patch in Slackware-distributed Python 3.9. (`#10668 `_) +- Fix an issue where pip did not consider dependencies with and without extras to be equal (`#9644 `_) + +Vendored Libraries +------------------ + +- Upgrade CacheControl to 0.12.10 +- Upgrade certifi to 2021.10.8 +- Upgrade distlib to 0.3.4 +- Upgrade idna to 3.3 +- Upgrade msgpack to 1.0.3 +- Upgrade packaging to 21.3 +- Upgrade platformdirs to 2.4.1 +- Add pygments 2.11.2 as a vendored dependency. +- Tree-trim unused portions of vendored pygments, to reduce the distribution size. +- Upgrade pyparsing to 3.0.7 +- Upgrade Requests to 2.27.1 +- Upgrade resolvelib to 0.8.1 +- Add rich 11.0.0 as a vendored dependency. +- Tree-trim unused portions of vendored rich, to reduce the distribution size. +- Add typing_extensions 4.0.1 as a vendored dependency. +- Upgrade urllib3 to 1.26.8 + + +21.3.1 (2021-10-22) +=================== + + +Bug Fixes +--------- + + +- Always refuse installing or building projects that have no ``pyproject.toml`` nor + ``setup.py``. (`#10531 `_) +- Tweak running-as-root detection, to check ``os.getuid`` if it exists, on Unix-y and non-Linux/non-MacOS machines. (`#10565 `_) +- When installing projects with a ``pyproject.toml`` in editable mode, and the build + backend does not support :pep:`660`, prepare metadata using + ``prepare_metadata_for_build_wheel`` instead of ``setup.py egg_info``. Also, refuse + installing projects that only have a ``setup.cfg`` and no ``setup.py`` nor + ``pyproject.toml``. These restore the pre-21.3 behaviour. (`#10573 `_) +- Restore compatibility of where configuration files are loaded from on MacOS (back to ``Library/Application Support/pip``, instead of ``Preferences/pip``). (`#10585 `_) + +Vendored Libraries +------------------ + + +- Upgrade pep517 to 0.12.0 + + +21.3 (2021-10-11) +================= + +Deprecations and Removals +------------------------- + +- Improve deprecation warning regarding the copying of source trees when installing from a local directory. (`#10128 `_) +- Suppress location mismatch warnings when pip is invoked from a Python source + tree, so ``ensurepip`` does not emit warnings on CPython ``make install``. (`#10270 `_) +- On Python 3.10 or later, the installation scheme backend has been changed to use + ``sysconfig``. This is to anticipate the deprecation of ``distutils`` in Python + 3.10, and its scheduled removal in 3.12. For compatibility considerations, pip + installations running on Python 3.9 or lower will continue to use ``distutils``. (`#10358 `_) +- Remove the ``--build-dir`` option and aliases, one last time. (`#10485 `_) +- In-tree builds are now the default. ``--use-feature=in-tree-build`` is now + ignored. ``--use-deprecated=out-of-tree-build`` may be used temporarily to ease + the transition. (`#10495 `_) +- Un-deprecate source distribution re-installation behaviour. (`#8711 `_) + +Features +-------- + +- Replace vendored appdirs with platformdirs. (`#10202 `_) +- Support `PEP 610 `_ to detect + editable installs in ``pip freeze`` and ``pip list``. The ``pip list`` column output + has a new ``Editable project location`` column, and the JSON output has a new + ``editable_project_location`` field. (`#10249 `_) +- ``pip freeze`` will now always fallback to reporting the editable project + location when it encounters a VCS error while analyzing an editable + requirement. Before, it sometimes reported the requirement as non-editable. (`#10410 `_) +- ``pip show`` now sorts ``Requires`` and ``Required-By`` alphabetically. (`#10422 `_) +- Do not raise error when there are no files to remove with ``pip cache purge/remove``. + Instead log a warning and continue (to log that we removed 0 files). (`#10459 `_) +- When backtracking during dependency resolution, prefer the dependencies which are involved in the most recent conflict. This can significantly reduce the amount of backtracking required. (`#10479 `_) +- Cache requirement objects, to improve performance reducing reparses of requirement strings. (`#10550 `_) +- Support editable installs for projects that have a ``pyproject.toml`` and use a + build backend that supports :pep:`660`. (`#8212 `_) +- When a revision is specified in a Git URL, use git's partial clone feature to speed up source retrieval. (`#9086 `_) +- Add a ``--debug`` flag, to enable a mode that doesn't log errors and propagates them to the top level instead. This is primarily to aid with debugging pip's crashes. (`#9349 `_) +- If a host is explicitly specified as trusted by the user (via the --trusted-host option), cache HTTP responses from it in addition to HTTPS ones. (`#9498 `_) + +Bug Fixes +--------- + +- Present a better error message, when a ``file:`` URL is not found. (`#10263 `_) +- Fix the auth credential cache to allow for the case in which + the index url contains the username, but the password comes + from an external source, such as keyring. (`#10269 `_) +- Fix double unescape of HTML ``data-requires-python`` and ``data-yanked`` attributes. (`#10378 `_) +- New resolver: Fixes depth ordering of packages during resolution, e.g. a dependency 2 levels deep will be ordered before a dependency 3 levels deep. (`#10482 `_) +- Correctly indent metadata preparation messages in pip output. (`#10524 `_) + +Vendored Libraries +------------------ + +- Remove appdirs as a vendored dependency. +- Upgrade distlib to 0.3.3 +- Upgrade distro to 1.6.0 +- Patch pkg_resources to use platformdirs rather than appdirs. +- Add platformdirs as a vendored dependency. +- Upgrade progress to 1.6 +- Upgrade resolvelib to 0.8.0 +- Upgrade urllib3 to 1.26.7 + +Improved Documentation +---------------------- + +- Update links of setuptools as setuptools moved these documents. The Simple Repository link now points to PyPUG as that is the canonical place of packaging specification, and setuptools's ``easy_install`` is deprecated. (`#10430 `_) +- Create a "Build System Interface" reference section, for documenting how pip interacts with build systems. (`#10497 `_) + + +21.2.4 (2021-08-12) +=================== + +Bug Fixes +--------- + +- Fix 3.6.0 compatibility in link comparison logic. (`#10280 `_) + + +21.2.3 (2021-08-06) +=================== + +Bug Fixes +--------- + +- Modify the ``sysconfig.get_preferred_scheme`` function check to be + compatible with CPython 3.10’s alphareleases. (`#10252 `_) + + +21.2.2 (2021-07-31) +=================== + +Bug Fixes +--------- + +- New resolver: When a package is specified with extras in constraints, and with + extras in non-constraint requirements, the resolver now correctly identifies the + constraint's existence and avoids backtracking. (`#10233 `_) + + +21.2.1 (2021-07-25) +=================== + +Process +------- + +- The source distribution re-installation feature removal has been delayed to 21.3. + + +21.2 (2021-07-24) +================= + +Process +------- + +- ``pip freeze``, ``pip list``, and ``pip show`` no longer normalize underscore + (``_``) in distribution names to dash (``-``). This is a side effect of the + migration to ``importlib.metadata``, since the underscore-dash normalization + behavior is non-standard and specific to setuptools. This should not affect + other parts of pip (for example, when feeding the ``pip freeze`` result back + into ``pip install``) since pip internally performs standard PEP 503 + normalization independently to setuptools. + +Deprecations and Removals +------------------------- + +- Git version parsing is now done with regular expression to prepare for the + pending upstream removal of non-PEP-440 version parsing logic. (`#10117 `_) +- Re-enable the "Value for ... does not match" location warnings to field a new + round of feedback for the ``distutils``-``sysconfig`` transition. (`#10151 `_) +- Remove deprecated ``--find-links`` option in ``pip freeze`` (`#9069 `_) + +Features +-------- + +- New resolver: Loosen URL comparison logic when checking for direct URL reference + equivalency. The logic includes the following notable characteristics: + + * The authentication part of the URL is explicitly ignored. + * Most of the fragment part, including ``egg=``, is explicitly ignored. Only + ``subdirectory=`` and hash values (e.g. ``sha256=``) are kept. + * The query part of the URL is parsed to allow ordering differences. (`#10002 `_) +- Support TOML v1.0.0 syntax in ``pyproject.toml``. (`#10034 `_) +- Added a warning message for errors caused due to Long Paths being disabled on Windows. (`#10045 `_) +- Change the encoding of log file from default text encoding to UTF-8. (`#10071 `_) +- Log the resolved commit SHA when installing a package from a Git repository. (`#10149 `_) +- Add a warning when passing an invalid requirement to ``pip uninstall``. (`#4958 `_) +- Add new subcommand ``pip index`` used to interact with indexes, and implement + ``pip index version`` to list available versions of a package. (`#7975 `_) +- When pip is asked to uninstall a project without the dist-info/RECORD file + it will no longer traceback with FileNotFoundError, + but it will provide a better error message instead, such as:: + + ERROR: Cannot uninstall foobar 0.1, RECORD file not found. You might be able to recover from this via: 'pip install --force-reinstall --no-deps foobar==0.1'. + + When dist-info/INSTALLER is present and contains some useful information, the info is included in the error message instead:: + + ERROR: Cannot uninstall foobar 0.1, RECORD file not found. Hint: The package was installed by rpm. + + (`#8954 `_) +- Add an additional level of verbosity. ``--verbose`` (and the shorthand ``-v``) now + contains significantly less output, and users that need complete full debug-level output + should pass it twice (``--verbose --verbose`` or ``-vv``). (`#9450 `_) +- New resolver: The order of dependencies resolution has been tweaked to traverse + the dependency graph in a more breadth-first approach. (`#9455 `_) +- Make "yes" the default choice in ``pip uninstall``'s prompt. (`#9686 `_) +- Add a special error message when users forget the ``-r`` flag when installing. (`#9915 `_) +- New resolver: A distribution's ``Requires-Python`` metadata is now checked + before its Python dependencies. This makes the resolver fail quicker when + there's an interpreter version conflict. (`#9925 `_) +- Suppress "not on PATH" warning when ``--prefix`` is given. (`#9931 `_) +- Include ``rustc`` version in pip's ``User-Agent``, when the system has ``rustc``. (`#9987 `_) + +Bug Fixes +--------- + +- Update vendored six to 1.16.0 and urllib3 to 1.26.5 (`#10043 `_) +- Correctly allow PEP 517 projects to be detected without warnings in ``pip freeze``. (`#10080 `_) +- Strip leading slash from a ``file://`` URL built from an path with the Windows + drive notation. This fixes bugs where the ``file://`` URL cannot be correctly + used as requirement, constraint, or index URLs on Windows. (`#10115 `_) +- New resolver: URL comparison logic now treats ``file://localhost/`` and + ``file:///`` as equivalent to conform to RFC 8089. (`#10162 `_) +- Prefer credentials from the URL over the previously-obtained credentials from URLs of the same domain, so it is possible to use different credentials on the same index server for different ``--extra-index-url`` options. (`#3931 `_) +- Fix extraction of files with utf-8 encoded paths from tars. (`#7667 `_) +- Skip distutils configuration parsing on encoding errors. (`#8931 `_) +- New resolver: Detect an unnamed requirement is user-specified (by building its + metadata for the project name) so it can be correctly ordered in the resolver. (`#9204 `_) +- Fix :ref:`pip freeze` to output packages :ref:`installed from git ` + in the correct ``git+protocol://git.example.com/MyProject#egg=MyProject`` format + rather than the old and no longer supported ``git+git@`` format. (`#9822 `_) +- Fix warnings about install scheme selection for Python framework builds + distributed by Apple's Command Line Tools. (`#9844 `_) +- Relax interpreter detection to quelch a location mismatch warning where PyPy + is deliberately breaking backwards compatibility. (`#9845 `_) + +Vendored Libraries +------------------ + +- Upgrade certifi to 2021.05.30. +- Upgrade idna to 3.2. +- Upgrade packaging to 21.0 +- Upgrade requests to 2.26.0. +- Upgrade resolvelib to 0.7.1. +- Upgrade urllib3 to 1.26.6. + + +21.1.3 (2021-06-26) +=================== + +Bug Fixes +--------- + +- Remove unused optional ``tornado`` import in vendored ``tenacity`` to prevent old versions of Tornado from breaking pip. (`#10020 `_) +- Require ``setup.cfg``-only projects to be built via PEP 517, by requiring an explicit dependency on setuptools declared in pyproject.toml. (`#10031 `_) + + +21.1.2 (2021-05-23) +=================== + +Bug Fixes +--------- + +- New resolver: Correctly exclude an already installed package if its version is + known to be incompatible to stop the dependency resolution process with a clear + error message. (`#9841 `_) +- Allow ZIP to archive files with timestamps earlier than 1980. (`#9910 `_) +- Emit clearer error message when a project root does not contain either + ``pyproject.toml``, ``setup.py`` or ``setup.cfg``. (`#9944 `_) +- Fix detection of existing standalone pip instance for PEP 517 builds. (`#9953 `_) + + +21.1.1 (2021-04-30) +=================== + +Deprecations and Removals +------------------------- + +- Temporarily set the new "Value for ... does not match" location warnings level + to *DEBUG*, to hide them from casual users. This prepares pip 21.1 for CPython + inclusion, while pip maintainers digest the first intake of location mismatch + issues for the ``distutils``-``sysconfig`` transition. (`#9912 `_) + +Bug Fixes +--------- + +- This change fixes a bug on Python <=3.6.1 with a Typing feature added in 3.6.2 (`#9831 `_) +- Fix compatibility between distutils and sysconfig when the project name is unknown outside of a virtual environment. (`#9838 `_) +- Fix Python 3.6 compatibility when a PEP 517 build requirement itself needs to be + built in an isolated environment. (`#9878 `_) + + +21.1 (2021-04-24) +================= + +Process +------- + +- Start installation scheme migration from ``distutils`` to ``sysconfig``. A + warning is implemented to detect differences between the two implementations to + encourage user reports, so we can avoid breakages before they happen. + +Features +-------- + +- Add the ability for the new resolver to process URL constraints. (`#8253 `_) +- Add a feature ``--use-feature=in-tree-build`` to build local projects in-place + when installing. This is expected to become the default behavior in pip 21.3; + see `Installing from local packages `_ + for more information. (`#9091 `_) +- Bring back the "(from versions: ...)" message, that was shown on resolution failures. (`#9139 `_) +- Add support for editable installs for project with only setup.cfg files. (`#9547 `_) +- Improve performance when picking the best file from indexes during ``pip install``. (`#9748 `_) +- Warn instead of erroring out when doing a PEP 517 build in presence of + ``--build-option``. Warn when doing a PEP 517 build in presence of + ``--global-option``. (`#9774 `_) + +Bug Fixes +--------- + +- Fixed ``--target`` to work with ``--editable`` installs. (`#4390 `_) +- Add a warning, discouraging the usage of pip as root, outside a virtual environment. (`#6409 `_) +- Ignore ``.dist-info`` directories if the stem is not a valid Python distribution + name, so they don't show up in e.g. ``pip freeze``. (`#7269 `_) +- Only query the keyring for URLs that actually trigger error 401. + This prevents an unnecessary keyring unlock prompt on every pip install + invocation (even with default index URL which is not password protected). (`#8090 `_) +- Prevent packages already-installed alongside with pip to be injected into an + isolated build environment during build-time dependency population. (`#8214 `_) +- Fix ``pip freeze`` permission denied error in order to display an understandable error message and offer solutions. (`#8418 `_) +- Correctly uninstall script files (from setuptools' ``scripts`` argument), when installed with ``--user``. (`#8733 `_) +- New resolver: When a requirement is requested both via a direct URL + (``req @ URL``) and via version specifier with extras (``req[extra]``), the + resolver will now be able to use the URL to correctly resolve the requirement + with extras. (`#8785 `_) +- New resolver: Show relevant entries from user-supplied constraint files in the + error message to improve debuggability. (`#9300 `_) +- Avoid parsing version to make the version check more robust against lousily + debundled downstream distributions. (`#9348 `_) +- ``--user`` is no longer suggested incorrectly when pip fails with a permission + error in a virtual environment. (`#9409 `_) +- Fix incorrect reporting on ``Requires-Python`` conflicts. (`#9541 `_) +- Make wheel compatibility tag preferences more important than the build tag (`#9565 `_) +- Fix pip to work with warnings converted to errors. (`#9779 `_) +- **SECURITY**: Stop splitting on unicode separators in git references, + which could be maliciously used to install a different revision on the + repository. (`#9827 `_) + +Vendored Libraries +------------------ + +- Update urllib3 to 1.26.4 to fix CVE-2021-28363 +- Remove contextlib2. +- Upgrade idna to 3.1 +- Upgrade pep517 to 0.10.0 +- Upgrade vendored resolvelib to 0.7.0. +- Upgrade tenacity to 7.0.0 + +Improved Documentation +---------------------- + +- Update "setuptools extras" link to match upstream. (`#4822829F-6A45-4202-87BA-A80482DF6D4E `_) +- Improve SSL Certificate Verification docs and ``--cert`` help text. (`#6720 `_) +- Add a section in the documentation to suggest solutions to the ``pip freeze`` permission denied issue. (`#8418 `_) +- Add warning about ``--extra-index-url`` and dependency confusion (`#9647 `_) +- Describe ``--upgrade-strategy`` and direct requirements explicitly; add a brief + example. (`#9692 `_) + + +21.0.1 (2021-01-30) +=================== + +Bug Fixes +--------- + +- commands: debug: Use packaging.version.parse to compare between versions. (`#9461 `_) +- New resolver: Download and prepare a distribution only at the last possible + moment to avoid unnecessary network access when the same version is already + installed locally. (`#9516 `_) + +Vendored Libraries +------------------ + +- Upgrade packaging to 20.9 + + +21.0 (2021-01-23) +================= + +Deprecations and Removals +------------------------- + +- Drop support for Python 2. (`#6148 `_) +- Remove support for legacy wheel cache entries that were created with pip + versions older than 20.0. (`#7502 `_) +- Remove support for VCS pseudo URLs editable requirements. It was emitting + deprecation warning since version 20.0. (`#7554 `_) +- Modernise the codebase after Python 2. (`#8802 `_) +- Drop support for Python 3.5. (`#9189 `_) +- Remove the VCS export feature that was used only with editable VCS + requirements and had correctness issues. (`#9338 `_) + +Features +-------- + +- Add ``--ignore-requires-python`` support to pip download. (`#1884 `_) +- New resolver: Error message shown when a wheel contains inconsistent metadata + is made more helpful by including both values from the file name and internal + metadata. (`#9186 `_) + +Bug Fixes +--------- + +- Fix a regression that made ``pip wheel`` do a VCS export instead of a VCS clone + for editable requirements. This broke VCS requirements that need the VCS + information to build correctly. (`#9273 `_) +- Fix ``pip download`` of editable VCS requirements that need VCS information + to build correctly. (`#9337 `_) + +Vendored Libraries +------------------ + +- Upgrade msgpack to 1.0.2. +- Upgrade requests to 2.25.1. + +Improved Documentation +---------------------- + +- Render the unreleased pip version change notes on the news page in docs. (`#9172 `_) +- Fix broken email link in docs feedback banners. (`#9343 `_) + + +20.3.4 (2021-01-23) +=================== + +Features +-------- + +- ``pip wheel`` now verifies the built wheel contains valid metadata, and can be + installed by a subsequent ``pip install``. This can be disabled with + ``--no-verify``. (`#9206 `_) +- Improve presentation of XMLRPC errors in pip search. (`#9315 `_) + +Bug Fixes +--------- + +- Fixed hanging VCS subprocess calls when the VCS outputs a large amount of data + on stderr. Restored logging of VCS errors that was inadvertently removed in pip + 20.2. (`#8876 `_) +- Fix error when an existing incompatibility is unable to be applied to a backtracked state. (`#9180 `_) +- New resolver: Discard a faulty distribution, instead of quitting outright. + This implementation is taken from 20.2.2, with a fix that always makes the + resolver iterate through candidates from indexes lazily, to avoid downloading + candidates we do not need. (`#9203 `_) +- New resolver: Discard a source distribution if it fails to generate metadata, + instead of quitting outright. This implementation is taken from 20.2.2, with a + fix that always makes the resolver iterate through candidates from indexes + lazily, to avoid downloading candidates we do not need. (`#9246 `_) + +Vendored Libraries +------------------ + +- Upgrade resolvelib to 0.5.4. + + +20.3.3 (2020-12-15) +=================== + +Bug Fixes +--------- + +- Revert "Skip candidate not providing valid metadata", as that caused pip to be overeager about downloading from the package index. (`#9264 `_) + + +20.3.2 (2020-12-15) +=================== + +Features +-------- + +- New resolver: Resolve direct and pinned (``==`` or ``===``) requirements first + to improve resolver performance. (`#9185 `_) +- Add a mechanism to delay resolving certain packages, and use it for setuptools. (`#9249 `_) + +Bug Fixes +--------- + +- New resolver: The "Requirement already satisfied" log is not printed only once + for each package during resolution. (`#9117 `_) +- Fix crash when logic for redacting authentication information from URLs + in ``--help`` is given a list of strings, instead of a single string. (`#9191 `_) +- New resolver: Correctly implement PEP 592. Do not return yanked versions from + an index, unless the version range can only be satisfied by yanked candidates. (`#9203 `_) +- New resolver: Make constraints also apply to package variants with extras, so + the resolver correctly avoids backtracking on them. (`#9232 `_) +- New resolver: Discard a candidate if it fails to provide metadata from source, + or if the provided metadata is inconsistent, instead of quitting outright. (`#9246 `_) + +Vendored Libraries +------------------ + +- Update vendoring to 20.8 + +Improved Documentation +---------------------- + +- Update documentation to reflect that pip still uses legacy resolver by default in Python 2 environments. (`#9269 `_) + + +20.3.1 (2020-12-03) +=================== + +Deprecations and Removals +------------------------- + +- The --build-dir option has been restored as a no-op, to soften the transition + for tools that still used it. (`#9193 `_) + + +20.3 (2020-11-30) +================= + +Deprecations and Removals +------------------------- + +- Remove --unstable-feature flag as it has been deprecated. (`#9133 `_) + +Features +-------- + +- Add support for :pep:`600`: Future 'manylinux' Platform Tags for Portable Linux Built Distributions. (`#9077 `_) +- The new resolver now resolves packages in a deterministic order. (`#9100 `_) +- Add support for MacOS Big Sur compatibility tags. (`#9138 `_) + +Bug Fixes +--------- + +- New Resolver: Rework backtracking and state management, to avoid getting stuck in an infinite loop. (`#9011 `_) +- New resolver: Check version equality with ``packaging.version`` to avoid edge + cases if a wheel used different version normalization logic in its filename + and metadata. (`#9083 `_) +- New resolver: Show each requirement in the conflict error message only once to reduce cluttering. (`#9101 `_) +- Fix a regression that made ``pip wheel`` generate zip files of editable + requirements in the wheel directory. (`#9122 `_) +- Fix ResourceWarning in VCS subprocesses (`#9156 `_) +- Redact auth from URL in help message. (`#9160 `_) +- New Resolver: editable installations are done, regardless of whether + the already-installed distribution is editable. (`#9169 `_) + +Vendored Libraries +------------------ + +- Upgrade certifi to 2020.11.8 +- Upgrade colorama to 0.4.4 +- Upgrade packaging to 20.7 +- Upgrade pep517 to 0.9.1 +- Upgrade requests to 2.25.0 +- Upgrade resolvelib to 0.5.3 +- Upgrade toml to 0.10.2 +- Upgrade urllib3 to 1.26.2 + +Improved Documentation +---------------------- + +- Add a section to the User Guide to cover backtracking during dependency resolution. (`#9039 `_) +- Reorder and revise installation instructions to make them easier to follow. (`#9131 `_) + + +20.3b1 (2020-10-31) +=================== + +Deprecations and Removals +------------------------- + +- ``pip freeze`` will stop filtering the ``pip``, ``setuptools``, ``distribute`` and ``wheel`` packages from ``pip freeze`` output in a future version. + To keep the previous behavior, users should use the new ``--exclude`` option. (`#4256 `_) +- Deprecate support for Python 3.5 (`#8181 `_) +- Document that certain removals can be fast tracked. (`#8417 `_) +- Document that Python versions are generally supported until PyPI usage falls below 5%. (`#8927 `_) +- Deprecate ``--find-links`` option in ``pip freeze`` (`#9069 `_) + +Features +-------- + +- Add ``--exclude`` option to ``pip freeze`` and ``pip list`` commands to explicitly exclude packages from the output. (`#4256 `_) +- Allow multiple values for --abi and --platform. (`#6121 `_) +- Add option ``--format`` to subcommand ``list`` of ``pip cache``, with ``abspath`` choice to output the full path of a wheel file. (`#8355 `_) +- Improve error message friendliness when an environment has packages with + corrupted metadata. (`#8676 `_) +- Make the ``setup.py install`` deprecation warning less noisy. We warn only + when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as + situations where both fails are most probably irrelevant to this deprecation. (`#8752 `_) +- Check the download directory for existing wheels to possibly avoid + fetching metadata when the ``fast-deps`` feature is used with + ``pip wheel`` and ``pip download``. (`#8804 `_) +- When installing a git URL that refers to a commit that is not available locally + after git clone, attempt to fetch it from the remote. (`#8815 `_) +- Include http subdirectory in ``pip cache info`` and ``pip cache purge`` commands. (`#8892 `_) +- Cache package listings on index packages so they are guaranteed to stay stable + during a pip command session. This also improves performance when a index page + is accessed multiple times during the command session. (`#8905 `_) +- New resolver: Tweak resolution logic to improve user experience when + user-supplied requirements conflict. (`#8924 `_) +- Support Python 3.9. (`#8971 `_) +- Log an informational message when backtracking takes multiple rounds on a specific package. (`#8975 `_) +- Switch to the new dependency resolver by default. (`#9019 `_) +- Remove the ``--build-dir`` option, as per the deprecation. (`#9049 `_) + +Bug Fixes +--------- + +- Propagate ``--extra-index-url`` from requirements file properly to session auth, + so that keyring auth will work as expected. (`#8103 `_) +- Allow specifying verbosity and quiet level via configuration files + and environment variables. Previously these options were treated as + boolean values when read from there while through CLI the level can be + specified. (`#8578 `_) +- Only converts Windows path to unicode on Python 2 to avoid regressions when a + POSIX environment does not configure the file system encoding correctly. (`#8658 `_) +- List downloaded distributions before exiting ``pip download`` + when using the new resolver to make the behavior the same as + that on the legacy resolver. (`#8696 `_) +- New resolver: Pick up hash declarations in constraints files and use them to + filter available distributions. (`#8792 `_) +- Avoid polluting the destination directory by resolution artifacts + when the new resolver is used for ``pip download`` or ``pip wheel``. (`#8827 `_) +- New resolver: If a package appears multiple times in user specification with + different ``--hash`` options, only hashes that present in all specifications + should be allowed. (`#8839 `_) +- Tweak the output during dependency resolution in the new resolver. (`#8861 `_) +- Correctly search for installed distributions in new resolver logic in order + to not miss packages (virtualenv packages from system-wide-packages for example) (`#8963 `_) +- Do not fail in pip freeze when encountering a ``direct_url.json`` metadata file + with editable=True. Render it as a non-editable ``file://`` URL until modern + editable installs are standardized and supported. (`#8996 `_) + +Vendored Libraries +------------------ + +- Fix devendoring instructions to explicitly state that ``vendor.txt`` should not be removed. + It is mandatory for ``pip debug`` command. + +Improved Documentation +---------------------- + +- Add documentation for '.netrc' support. (`#7231 `_) +- Add OS tabs for OS-specific commands. (`#7311 `_) +- Add note and example on keyring support for index basic-auth (`#8636 `_) +- Added initial UX feedback widgets to docs. (`#8783 `_, `#8848 `_) +- Add ux documentation (`#8807 `_) +- Update user docs to reflect new resolver as default in 20.3. (`#9044 `_) +- Improve migration guide to reflect changes in new resolver behavior. (`#9056 `_) + + +20.2.4 (2020-10-16) +=================== + +Deprecations and Removals +------------------------- + +- Document that certain removals can be fast tracked. (`#8417 `_) +- Document that Python versions are generally supported until PyPI usage falls below 5%. (`#8927 `_) + +Features +-------- + +- New resolver: Avoid accessing indexes when the installed candidate is preferred + and considered good enough. (`#8023 `_) +- Improve error message friendliness when an environment has packages with + corrupted metadata. (`#8676 `_) +- Cache package listings on index packages so they are guaranteed to stay stable + during a pip command session. This also improves performance when a index page + is accessed multiple times during the command session. (`#8905 `_) +- New resolver: Tweak resolution logic to improve user experience when + user-supplied requirements conflict. (`#8924 `_) + +Bug Fixes +--------- + +- New resolver: Correctly respect ``Requires-Python`` metadata to reject + incompatible packages in ``--no-deps`` mode. (`#8758 `_) +- New resolver: Pick up hash declarations in constraints files and use them to + filter available distributions. (`#8792 `_) +- New resolver: If a package appears multiple times in user specification with + different ``--hash`` options, only hashes that present in all specifications + should be allowed. (`#8839 `_) + +Improved Documentation +---------------------- + +- Add ux documentation (`#8807 `_) + + +20.2.3 (2020-09-08) +=================== + +Deprecations and Removals +------------------------- + +- Deprecate support for Python 3.5 (`#8181 `_) + +Features +-------- + +- Make the ``setup.py install`` deprecation warning less noisy. We warn only + when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as + situations where both fails are most probably irrelevant to this deprecation. (`#8752 `_) + + +20.2.2 (2020-08-11) +=================== + +Bug Fixes +--------- + +- Only attempt to use the keyring once and if it fails, don't try again. + This prevents spamming users with several keyring unlock prompts when they + cannot unlock or don't want to do so. (`#8090 `_) +- Fix regression that distributions in system site-packages are not correctly + found when a virtual environment is configured with ``system-site-packages`` + on. (`#8695 `_) +- Disable caching for range requests, which causes corrupted wheels + when pip tries to obtain metadata using the feature ``fast-deps``. (`#8701 `_, `#8716 `_) +- Always use UTF-8 to read ``pyvenv.cfg`` to match the built-in ``venv``. (`#8717 `_) +- 2020 Resolver: Correctly handle marker evaluation in constraints and exclude + them if their markers do not match the current environment. (`#8724 `_) + + +20.2.1 (2020-08-04) +=================== + +Features +-------- + +- Ignore require-virtualenv in ``pip list`` (`#8603 `_) + +Bug Fixes +--------- + +- Correctly find already-installed distributions with dot (``.``) in the name + and uninstall them when needed. (`#8645 `_) +- Trace a better error message on installation failure due to invalid ``.data`` + files in wheels. (`#8654 `_) +- Fix SVN version detection for alternative SVN distributions. (`#8665 `_) +- New resolver: Correctly include the base package when specified with extras + in ``--no-deps`` mode. (`#8677 `_) +- Use UTF-8 to handle ZIP archive entries on Python 2 according to PEP 427, so + non-ASCII paths can be resolved as expected. (`#8684 `_) + +Improved Documentation +---------------------- + +- Add details on old resolver deprecation and removal to migration documentation. (`#8371 `_) +- Fix feature flag name in docs. (`#8660 `_) + + +20.2 (2020-07-29) +================= + +Deprecations and Removals +------------------------- + +- Deprecate setup.py-based builds that do not generate an ``.egg-info`` directory. (`#6998 `_, `#8617 `_) +- Disallow passing install-location-related arguments in ``--install-options``. (`#7309 `_) +- Add deprecation warning for invalid requirements format "base>=1.0[extra]" (`#8288 `_) +- Deprecate legacy setup.py install when building a wheel failed for source + distributions without pyproject.toml (`#8368 `_) +- Deprecate -b/--build/--build-dir/--build-directory. Its current behaviour is confusing + and breaks in case different versions of the same distribution need to be built during + the resolution process. Using the TMPDIR/TEMP/TMP environment variable, possibly + combined with --no-clean covers known use cases. (`#8372 `_) +- Remove undocumented and deprecated option ``--always-unzip`` (`#8408 `_) + +Features +-------- + +- Log debugging information about pip, in ``pip install --verbose``. (`#3166 `_) +- Refine error messages to avoid showing Python tracebacks when an HTTP error occurs. (`#5380 `_) +- Install wheel files directly instead of extracting them to a temp directory. (`#6030 `_) +- Add a beta version of pip's next-generation dependency resolver. + + Move pip's new resolver into beta, remove the + ``--unstable-feature=resolver`` flag, and enable the + ``--use-feature=2020-resolver`` flag. The new resolver is + significantly stricter and more consistent when it receives + incompatible instructions, and reduces support for certain kinds of + :ref:`Constraints Files`, so some workarounds and workflows may + break. More details about how to test and migrate, and how to report + issues, at :ref:`Resolver changes 2020` . Maintainers are preparing to + release pip 20.3, with the new resolver on by default, in October. (`#6536 `_) +- Introduce a new ResolutionImpossible error, raised when pip encounters un-satisfiable dependency conflicts (`#8546 `_, `#8377 `_) +- Add a subcommand ``debug`` to ``pip config`` to list available configuration sources and the key-value pairs defined in them. (`#6741 `_) +- Warn if index pages have unexpected content-type (`#6754 `_) +- Allow specifying ``--prefer-binary`` option in a requirements file (`#7693 `_) +- Generate PEP 376 REQUESTED metadata for user supplied requirements installed + by pip. (`#7811 `_) +- Warn if package url is a vcs or an archive url with invalid scheme (`#8128 `_) +- Parallelize network operations in ``pip list``. (`#8504 `_) +- Allow the new resolver to obtain dependency information through wheels + lazily downloaded using HTTP range requests. To enable this feature, + invoke ``pip`` with ``--use-feature=fast-deps``. (`#8588 `_) +- Support ``--use-feature`` in requirements files (`#8601 `_) + +Bug Fixes +--------- + +- Use canonical package names while looking up already installed packages. (`#5021 `_) +- Fix normalizing path on Windows when installing package on another logical disk. (`#7625 `_) +- The VCS commands run by pip as subprocesses don't merge stdout and stderr anymore, improving the output parsing by subsequent commands. (`#7968 `_) +- Correctly treat non-ASCII entry point declarations in wheels so they can be + installed on Windows. (`#8342 `_) +- Update author email in config and tests to reflect decommissioning of pypa-dev list. (`#8454 `_) +- Headers provided by wheels in .data directories are now correctly installed + into the user-provided locations, such as ``--prefix``, instead of the virtual + environment pip is running in. (`#8521 `_) + +Vendored Libraries +------------------ + +- Vendored htmlib5 no longer imports deprecated xml.etree.cElementTree on Python 3. +- Upgrade appdirs to 1.4.4 +- Upgrade certifi to 2020.6.20 +- Upgrade distlib to 0.3.1 +- Upgrade html5lib to 1.1 +- Upgrade idna to 2.10 +- Upgrade packaging to 20.4 +- Upgrade requests to 2.24.0 +- Upgrade six to 1.15.0 +- Upgrade toml to 0.10.1 +- Upgrade urllib3 to 1.25.9 + +Improved Documentation +---------------------- + +- Add ``--no-input`` option to pip docs (`#7688 `_) +- List of options supported in requirements file are extracted from source of truth, + instead of being maintained manually. (`#7908 `_) +- Fix pip config docstring so that the subcommands render correctly in the docs (`#8072 `_) +- replace links to the old pypa-dev mailing list with https://mail.python.org/mailman3/lists/distutils-sig.python.org/ (`#8353 `_) +- Fix example for defining multiple values for options which support them (`#8373 `_) +- Add documentation for the ResolutionImpossible error that helps the user fix dependency conflicts (`#8459 `_) +- Add feature flags to docs (`#8512 `_) +- Document how to install package extras from git branch and source distributions. (`#8576 `_) + + +20.2b1 (2020-05-21) +=================== + +Bug Fixes +--------- + +- Correctly treat wheels containing non-ASCII file contents so they can be + installed on Windows. (`#5712 `_) +- Prompt the user for password if the keyring backend doesn't return one (`#7998 `_) + +Improved Documentation +---------------------- + +- Add GitHub issue template for reporting when the dependency resolver fails (`#8207 `_) + +20.1.1 (2020-05-19) +=================== + +Deprecations and Removals +------------------------- + +- Revert building of local directories in place, restoring the pre-20.1 + behaviour of copying to a temporary directory. (`#7555 `_) +- Drop parallelization from ``pip list --outdated``. (`#8167 `_) + +Bug Fixes +--------- + +- Fix metadata permission issues when umask has the executable bit set. (`#8164 `_) +- Avoid unnecessary message about the wheel package not being installed + when a wheel would not have been built. Additionally, clarify the message. (`#8178 `_) + + +20.1 (2020-04-28) +================= + +Process +------- + +- Document that pip 21.0 will drop support for Python 2.7. + +Features +-------- + +- Add ``pip cache dir`` to show the cache directory. (`#7350 `_) + +Bug Fixes +--------- + +- Abort pip cache commands early when cache is disabled. (`#8124 `_) +- Correctly set permissions on metadata files during wheel installation, + to permit non-privileged users to read from system site-packages. (`#8139 `_) + + +20.1b1 (2020-04-21) +=================== + +Deprecations and Removals +------------------------- + +- Remove emails from AUTHORS.txt to prevent usage for spamming, and only populate names in AUTHORS.txt at time of release (`#5979 `_) +- Remove deprecated ``--skip-requirements-regex`` option. (`#7297 `_) +- Building of local directories is now done in place, instead of a temporary + location containing a copy of the directory tree. (`#7555 `_) +- Remove unused ``tests/scripts/test_all_pip.py`` test script and the ``tests/scripts`` folder. (`#7680 `_) + +Features +-------- + +- pip now implements PEP 610, so ``pip freeze`` has better fidelity + in presence of distributions installed from Direct URL requirements. (`#609 `_) +- Add ``pip cache`` command for inspecting/managing pip's wheel cache. (`#6391 `_) +- Raise error if ``--user`` and ``--target`` are used together in ``pip install`` (`#7249 `_) +- Significantly improve performance when ``--find-links`` points to a very large HTML page. (`#7729 `_) +- Indicate when wheel building is skipped, due to lack of the ``wheel`` package. (`#7768 `_) +- Change default behaviour to always cache responses from trusted-host source. (`#7847 `_) +- An alpha version of a new resolver is available via ``--unstable-feature=resolver``. (`#988 `_) + +Bug Fixes +--------- + +- Correctly freeze a VCS editable package when it is nested inside another VCS repository. (`#3988 `_) +- Correctly handle ``%2F`` in URL parameters to avoid accidentally unescape them + into ``/``. (`#6446 `_) +- Reject VCS URLs with an empty revision. (`#7402 `_) +- Warn when an invalid URL is passed with ``--index-url`` (`#7430 `_) +- Use better mechanism for handling temporary files, when recording metadata + about installed files (RECORD) and the installer (INSTALLER). (`#7699 `_) +- Correctly detect global site-packages availability of virtual environments + created by PyPA’s virtualenv>=20.0. (`#7718 `_) +- Remove current directory from ``sys.path`` when invoked as ``python -m pip `` (`#7731 `_) +- Stop failing uninstallation, when trying to remove non-existent files. (`#7856 `_) +- Prevent an infinite recursion with ``pip wheel`` when ``$TMPDIR`` is within the source directory. (`#7872 `_) +- Significantly speedup ``pip list --outdated`` by parallelizing index interaction. (`#7962 `_) +- Improve Windows compatibility when detecting writability in folder. (`#8013 `_) + +Vendored Libraries +------------------ + +- Update semi-supported debundling script to reflect that appdirs is vendored. +- Add ResolveLib as a vendored dependency. +- Upgrade certifi to 2020.04.05.1 +- Upgrade contextlib2 to 0.6.0.post1 +- Upgrade distro to 1.5.0. +- Upgrade idna to 2.9. +- Upgrade msgpack to 1.0.0. +- Upgrade packaging to 20.3. +- Upgrade pep517 to 0.8.2. +- Upgrade pyparsing to 2.4.7. +- Remove pytoml as a vendored dependency. +- Upgrade requests to 2.23.0. +- Add toml as a vendored dependency. +- Upgrade urllib3 to 1.25.8. + +Improved Documentation +---------------------- + +- Emphasize that VCS URLs using git, git+git and git+http are insecure due to + lack of authentication and encryption (`#1983 `_) +- Clarify the usage of --no-binary command. (`#3191 `_) +- Clarify the usage of freeze command in the example of Using pip in your program (`#7008 `_) +- Add a "Copyright" page. (`#7767 `_) +- Added example of defining multiple values for options which support them (`#7803 `_) + + +20.0.2 (2020-01-24) +=================== + +Bug Fixes +--------- + +- Fix a regression in generation of compatibility tags. (`#7626 `_) + +Vendored Libraries +------------------ + +- Upgrade packaging to 20.1 + + +20.0.1 (2020-01-21) +=================== + +Bug Fixes +--------- + +- Rename an internal module, to avoid ImportErrors due to improper uninstallation. (`#7621 `_) + + +20.0 (2020-01-21) +================= + +Process +------- + +- Switch to a dedicated CLI tool for vendoring dependencies. + +Deprecations and Removals +------------------------- + +- Remove wheel tag calculation from pip and use ``packaging.tags``. This + should provide more tags ordered better than in prior releases. (`#6908 `_) +- Deprecate setup.py-based builds that do not generate an ``.egg-info`` directory. (`#6998 `_) +- The pip>=20 wheel cache is not retro-compatible with previous versions. Until + pip 21.0, pip will continue to take advantage of existing legacy cache + entries. (`#7296 `_) +- Deprecate undocumented ``--skip-requirements-regex`` option. (`#7297 `_) +- Deprecate passing install-location-related options via ``--install-option``. (`#7309 `_) +- Use literal "abi3" for wheel tag on CPython 3.x, to align with PEP 384 + which only defines it for this platform. (`#7327 `_) +- Remove interpreter-specific major version tag e.g. ``cp3-none-any`` + from consideration. This behavior was not documented strictly, and this + tag in particular is `not useful `_. + Anyone with a use case can create an issue with pypa/packaging. (`#7355 `_) +- Wheel processing no longer permits wheels containing more than one top-level + .dist-info directory. (`#7487 `_) +- Support for the ``git+git@`` form of VCS requirement is being deprecated and + will be removed in pip 21.0. Switch to ``git+https://`` or + ``git+ssh://``. ``git+git://`` also works but its use is discouraged as it is + insecure. (`#7543 `_) + +Features +-------- + +- Default to doing a user install (as if ``--user`` was passed) when the main + site-packages directory is not writeable and user site-packages are enabled. (`#1668 `_) +- Warn if a path in PATH starts with tilde during ``pip install``. (`#6414 `_) +- Cache wheels built from Git requirements that are considered immutable, + because they point to a commit hash. (`#6640 `_) +- Add option ``--no-python-version-warning`` to silence warnings + related to deprecation of Python versions. (`#6673 `_) +- Cache wheels that ``pip wheel`` built locally, matching what + ``pip install`` does. This particularly helps performance in workflows where + ``pip wheel`` is used for `building before installing + `_. + Users desiring the original behavior can use ``pip wheel --no-cache-dir``. (`#6852 `_) +- Display CA information in ``pip debug``. (`#7146 `_) +- Show only the filename (instead of full URL), when downloading from PyPI. (`#7225 `_) +- Suggest a more robust command to upgrade pip itself to avoid confusion when the + current pip command is not available as ``pip``. (`#7376 `_) +- Define all old pip console script entrypoints to prevent import issues in + stale wrapper scripts. (`#7498 `_) +- The build step of ``pip wheel`` now builds all wheels to a cache first, + then copies them to the wheel directory all at once. + Before, it built them to a temporary directory and moved + them to the wheel directory one by one. (`#7517 `_) +- Expand ``~`` prefix to user directory in path options, configs, and + environment variables. Values that may be either URL or path are not + currently supported, to avoid ambiguity: + + * ``--find-links`` + * ``--constraint``, ``-c`` + * ``--requirement``, ``-r`` + * ``--editable``, ``-e`` (`#980 `_) + +Bug Fixes +--------- + +- Correctly handle system site-packages, in virtual environments created with venv (PEP 405). (`#5702 `_, `#7155 `_) +- Fix case sensitive comparison of pip freeze when used with -r option. (`#5716 `_) +- Enforce PEP 508 requirement format in ``pyproject.toml`` + ``build-system.requires``. (`#6410 `_) +- Make ``ensure_dir()`` also ignore ``ENOTEMPTY`` as seen on Windows. (`#6426 `_) +- Fix building packages which specify ``backend-path`` in pyproject.toml. (`#6599 `_) +- Do not attempt to run ``setup.py clean`` after a ``pep517`` build error, + since a ``setup.py`` may not exist in that case. (`#6642 `_) +- Fix passwords being visible in the index-url in + "Downloading " message. (`#6783 `_) +- Change method from shutil.remove to shutil.rmtree in noxfile.py. (`#7191 `_) +- Skip running tests which require subversion, when svn isn't installed (`#7193 `_) +- Fix not sending client certificates when using ``--trusted-host``. (`#7207 `_) +- Make sure ``pip wheel`` never outputs pure python wheels with a + python implementation tag. Better fix/workaround for + `#3025 `_ by + using a per-implementation wheel cache instead of caching pure python + wheels with an implementation tag in their name. (`#7296 `_) +- Include ``subdirectory`` URL fragments in cache keys. (`#7333 `_) +- Fix typo in warning message when any of ``--build-option``, ``--global-option`` + and ``--install-option`` is used in requirements.txt (`#7340 `_) +- Fix the logging of cached HTTP response shown as downloading. (`#7393 `_) +- Effectively disable the wheel cache when it is not writable, as is the + case with the http cache. (`#7488 `_) +- Correctly handle relative cache directory provided via --cache-dir. (`#7541 `_) + +Vendored Libraries +------------------ + +- Upgrade CacheControl to 0.12.5 +- Upgrade certifi to 2019.9.11 +- Upgrade colorama to 0.4.1 +- Upgrade distlib to 0.2.9.post0 +- Upgrade ipaddress to 1.0.22 +- Update packaging to 20.0. +- Upgrade pkg_resources (via setuptools) to 44.0.0 +- Upgrade pyparsing to 2.4.2 +- Upgrade six to 1.12.0 +- Upgrade urllib3 to 1.25.6 + +Improved Documentation +---------------------- + +- Document that "coding: utf-8" is supported in requirements.txt (`#7182 `_) +- Explain how to get pip's source code in `Getting Started `_ (`#7197 `_) +- Describe how basic authentication credentials in URLs work. (`#7201 `_) +- Add more clear installation instructions (`#7222 `_) +- Fix documentation links for index options (`#7347 `_) +- Better document the requirements file format (`#7385 `_) + + +19.3.1 (2019-10-17) +=================== + +Features +-------- + +- Document Python 3.8 support. (`#7219 `_) + +Bug Fixes +--------- + +- Fix bug that prevented installation of PEP 517 packages without ``setup.py``. (`#6606 `_) + + +19.3 (2019-10-14) +================= + +Deprecations and Removals +------------------------- + +- Remove undocumented support for un-prefixed URL requirements pointing + to SVN repositories. Users relying on this can get the original behavior + by prefixing their URL with ``svn+`` (which is backwards-compatible). (`#7037 `_) +- Remove the deprecated ``--venv`` option from ``pip config``. (`#7163 `_) + +Features +-------- + +- Print a better error message when ``--no-binary`` or ``--only-binary`` is given + an argument starting with ``-``. (`#3191 `_) +- Make ``pip show`` warn about packages not found. (`#6858 `_) +- Support including a port number in ``--trusted-host`` for both HTTP and HTTPS. (`#6886 `_) +- Redact single-part login credentials from URLs in log messages. (`#6891 `_) +- Implement manylinux2014 platform tag support. manylinux2014 is the successor + to manylinux2010. It allows carefully compiled binary wheels to be installed + on compatible Linux platforms. The manylinux2014 platform tag definition can + be found in `PEP599 `_. (`#7102 `_) + +Bug Fixes +--------- + +- Abort installation if any archive contains a file which would be placed + outside the extraction location. (`#3907 `_) +- pip's CLI completion code no longer prints a Traceback if it is interrupted. (`#3942 `_) +- Correct inconsistency related to the ``hg+file`` scheme. (`#4358 `_) +- Fix ``rmtree_errorhandler`` to skip non-existing directories. (`#4910 `_) +- Ignore errors copying socket files for local source installs (in Python 3). (`#5306 `_) +- Fix requirement line parser to correctly handle PEP 440 requirements with a URL + pointing to an archive file. (`#6202 `_) +- The ``pip-wheel-metadata`` directory does not need to persist between invocations of pip, use a temporary directory instead of the current ``setup.py`` directory. (`#6213 `_) +- Fix ``--trusted-host`` processing under HTTPS to trust any port number used + with the host. (`#6705 `_) +- Switch to new ``distlib`` wheel script template. This should be functionally + equivalent for end users. (`#6763 `_) +- Skip copying .tox and .nox directories to temporary build directories (`#6770 `_) +- Fix handling of tokens (single part credentials) in URLs. (`#6795 `_) +- Fix a regression that caused ``~`` expansion not to occur in ``--find-links`` + paths. (`#6804 `_) +- Fix bypassed pip upgrade warning on Windows. (`#6841 `_) +- Fix 'm' flag erroneously being appended to ABI tag in Python 3.8 on platforms that do not provide SOABI (`#6885 `_) +- Hide security-sensitive strings like passwords in log messages related to + version control system (aka VCS) command invocations. (`#6890 `_) +- Correctly uninstall symlinks that were installed in a virtualenv, + by tools such as ``flit install --symlink``. (`#6892 `_) +- Don't fail installation using pip.exe on Windows when pip wouldn't be upgraded. (`#6924 `_) +- Use canonical distribution names when computing ``Required-By`` in ``pip show``. (`#6947 `_) +- Don't use hardlinks for locking selfcheck state file. (`#6954 `_) +- Ignore "require_virtualenv" in ``pip config`` (`#6991 `_) +- Fix ``pip freeze`` not showing correct entry for mercurial packages that use subdirectories. (`#7071 `_) +- Fix a crash when ``sys.stdin`` is set to ``None``, such as on AWS Lambda. (`#7118 `_, `#7119 `_) + +Vendored Libraries +------------------ + +- Upgrade certifi to 2019.9.11 +- Add contextlib2 0.6.0 as a vendored dependency. +- Remove Lockfile as a vendored dependency. +- Upgrade msgpack to 0.6.2 +- Upgrade packaging to 19.2 +- Upgrade pep517 to 0.7.0 +- Upgrade pyparsing to 2.4.2 +- Upgrade pytoml to 0.1.21 +- Upgrade setuptools to 41.4.0 +- Upgrade urllib3 to 1.25.6 + +Improved Documentation +---------------------- + +- Document caveats for UNC paths in uninstall and add .pth unit tests. (`#6516 `_) +- Add architectural overview documentation. (`#6637 `_) +- Document that ``--ignore-installed`` is dangerous. (`#6794 `_) + + +19.2.3 (2019-08-25) +=================== + +Bug Fixes +--------- + +- Fix 'm' flag erroneously being appended to ABI tag in Python 3.8 on platforms that do not provide SOABI (`#6885 `_) + + +19.2.2 (2019-08-11) +=================== + +Bug Fixes +--------- + +- Fix handling of tokens (single part credentials) in URLs. (`#6795 `_) +- Fix a regression that caused ``~`` expansion not to occur in ``--find-links`` + paths. (`#6804 `_) + + +19.2.1 (2019-07-23) +=================== + +Bug Fixes +--------- + +- Fix a ``NoneType`` ``AttributeError`` when evaluating hashes and no hashes + are provided. (`#6772 `_) + + +19.2 (2019-07-22) +================= + +Deprecations and Removals +------------------------- + +- Drop support for EOL Python 3.4. (`#6685 `_) +- Improve deprecation messages to include the version in which the functionality will be removed. (`#6549 `_) + +Features +-------- + +- Credentials will now be loaded using `keyring` when installed. (`#5948 `_) +- Fully support using ``--trusted-host`` inside requirements files. (`#3799 `_) +- Update timestamps in pip's ``--log`` file to include milliseconds. (`#6587 `_) +- Respect whether a file has been marked as "yanked" from a simple repository + (see `PEP 592 `__ for details). (`#6633 `_) +- When choosing candidates to install, prefer candidates with a hash matching + one of the user-provided hashes. (`#5874 `_) +- Improve the error message when ``METADATA`` or ``PKG-INFO`` is None when + accessing metadata. (`#5082 `_) +- Add a new command ``pip debug`` that can display e.g. the list of compatible + tags for the current Python. (`#6638 `_) +- Display hint on installing with --pre when search results include pre-release versions. (`#5169 `_) +- Report to Warehouse that pip is running under CI if the ``PIP_IS_CI`` environment variable is set. (`#5499 `_) +- Allow ``--python-version`` to be passed as a dotted version string (e.g. + ``3.7`` or ``3.7.3``). (`#6585 `_) +- Log the final filename and SHA256 of a ``.whl`` file when done building a + wheel. (`#5908 `_) +- Include the wheel's tags in the log message explanation when a candidate + wheel link is found incompatible. (`#6121 `_) +- Add a ``--path`` argument to ``pip freeze`` to support ``--target`` + installations. (`#6404 `_) +- Add a ``--path`` argument to ``pip list`` to support ``--target`` + installations. (`#6551 `_) + +Bug Fixes +--------- + +- Set ``sys.argv[0]`` to the underlying ``setup.py`` when invoking ``setup.py`` + via the setuptools shim so setuptools doesn't think the path is ``-c``. (`#1890 `_) +- Update ``pip download`` to respect the given ``--python-version`` when checking + ``"Requires-Python"``. (`#5369 `_) +- Respect ``--global-option`` and ``--install-option`` when installing from + a version control url (e.g. ``git``). (`#5518 `_) +- Make the "ascii" progress bar really be "ascii" and not Unicode. (`#5671 `_) +- Fail elegantly when trying to set an incorrectly formatted key in config. (`#5963 `_) +- Prevent DistutilsOptionError when prefix is indicated in the global environment and `--target` is used. (`#6008 `_) +- Fix ``pip install`` to respect ``--ignore-requires-python`` when evaluating + links. (`#6371 `_) +- Fix a debug log message when freezing an editable, non-version controlled + requirement. (`#6383 `_) +- Extend to Subversion 1.8+ the behavior of calling Subversion in + interactive mode when pip is run interactively. (`#6386 `_) +- Prevent ``pip install `` from permitting directory traversal if e.g. + a malicious server sends a ``Content-Disposition`` header with a filename + containing ``../`` or ``..\\``. (`#6413 `_) +- Hide passwords in output when using ``--find-links``. (`#6489 `_) +- Include more details in the log message if ``pip freeze`` can't generate a + requirement string for a particular distribution. (`#6513 `_) +- Add the line number and file location to the error message when reading an + invalid requirements file in certain situations. (`#6527 `_) +- Prefer ``os.confstr`` to ``ctypes`` when extracting glibc version info. (`#6543 `_, `#6675 `_) +- Improve error message printed when an invalid editable requirement is provided. (`#6648 `_) +- Improve error message formatting when a command errors out in a subprocess. (`#6651 `_) + +Vendored Libraries +------------------ + +- Upgrade certifi to 2019.6.16 +- Upgrade distlib to 0.2.9.post0 +- Upgrade msgpack to 0.6.1 +- Upgrade requests to 2.22.0 +- Upgrade urllib3 to 1.25.3 +- Patch vendored html5lib, to prefer using `collections.abc` where possible. + +Improved Documentation +---------------------- + +- Document how Python 2.7 support will be maintained. (`#6726 `_) +- Upgrade Sphinx version used to build documentation. (`#6471 `_) +- Fix generation of subcommand manpages. (`#6724 `_) +- Mention that pip can install from git refs. (`#6512 `_) +- Replace a failing example of pip installs with extras with a working one. (`#4733 `_) + +19.1.1 (2019-05-06) +=================== + +Features +-------- + +- Restore ``pyproject.toml`` handling to how it was with pip 19.0.3 to prevent + the need to add ``--no-use-pep517`` when installing in editable mode. (`#6434 `_) + +Bug Fixes +--------- + +- Fix a regression that caused `@` to be quoted in pypiserver links. + This interfered with parsing the revision string from VCS urls. (`#6440 `_) + + +19.1 (2019-04-23) +================= + +Features +-------- + +- Configuration files may now also be stored under ``sys.prefix`` (`#5060 `_) +- Avoid creating an unnecessary local clone of a Bazaar branch when exporting. (`#5443 `_) +- Include in pip's User-Agent string whether it looks like pip is running + under CI. (`#5499 `_) +- A custom (JSON-encoded) string can now be added to pip's User-Agent + using the ``PIP_USER_AGENT_USER_DATA`` environment variable. (`#5549 `_) +- For consistency, passing ``--no-cache-dir`` no longer affects whether wheels + will be built. In this case, a temporary directory is used. (`#5749 `_) +- Command arguments in ``subprocess`` log messages are now quoted using + ``shlex.quote()``. (`#6290 `_) +- Prefix warning and error messages in log output with `WARNING` and `ERROR`. (`#6298 `_) +- Using ``--build-options`` in a PEP 517 build now fails with an error, + rather than silently ignoring the option. (`#6305 `_) +- Error out with an informative message if one tries to install a + ``pyproject.toml``-style (PEP 517) source tree using ``--editable`` mode. (`#6314 `_) +- When downloading a package, the ETA and average speed now only update once per second for better legibility. (`#6319 `_) + +Bug Fixes +--------- + +- The stdout and stderr from VCS commands run by pip as subprocesses (e.g. + ``git``, ``hg``, etc.) no longer pollute pip's stdout. (`#1219 `_) +- Fix handling of requests exceptions when dependencies are debundled. (`#4195 `_) +- Make pip's self version check avoid recommending upgrades to prereleases if the currently-installed version is stable. (`#5175 `_) +- Fixed crash when installing a requirement from a URL that comes from a dependency without a URL. (`#5889 `_) +- Improve handling of file URIs: correctly handle `file://localhost/...` and don't try to use UNC paths on Unix. (`#5892 `_) +- Fix ``utils.encoding.auto_decode()`` ``LookupError`` with invalid encodings. + ``utils.encoding.auto_decode()`` was broken when decoding Big Endian BOM + byte-strings on Little Endian or vice versa. (`#6054 `_) +- Fix incorrect URL quoting of IPv6 addresses. (`#6285 `_) +- Redact the password from the extra index URL when using ``pip -v``. (`#6295 `_) +- The spinner no longer displays a completion message after subprocess calls + not needing a spinner. It also no longer incorrectly reports an error after + certain subprocess calls to Git that succeeded. (`#6312 `_) +- Fix the handling of editable mode during installs when ``pyproject.toml`` is + present but PEP 517 doesn't require the source tree to be treated as + ``pyproject.toml``-style. (`#6370 `_) +- Fix ``NameError`` when handling an invalid requirement. (`#6419 `_) + +Vendored Libraries +------------------ + +- Updated certifi to 2019.3.9 +- Updated distro to 1.4.0 +- Update progress to 1.5 +- Updated pyparsing to 2.4.0 +- Updated pkg_resources to 41.0.1 (via setuptools) + +Improved Documentation +---------------------- + +- Make dashes render correctly when displaying long options like + ``--find-links`` in the text. (`#6422 `_) + + +19.0.3 (2019-02-20) +=================== + +Bug Fixes +--------- + +- Fix an ``IndexError`` crash when a legacy build of a wheel fails. (`#6252 `_) +- Fix a regression introduced in 19.0.2 where the filename in a RECORD file + of an installed file would not be updated when installing a wheel. (`#6266 `_) + + +19.0.2 (2019-02-09) +=================== + +Bug Fixes +--------- + +- Fix a crash where PEP 517-based builds using ``--no-cache-dir`` would fail in + some circumstances with an ``AssertionError`` due to not finalizing a build + directory internally. (`#6197 `_) +- Provide a better error message if attempting an editable install of a + directory with a ``pyproject.toml`` but no ``setup.py``. (`#6170 `_) +- The implicit default backend used for projects that provide a ``pyproject.toml`` + file without explicitly specifying ``build-backend`` now behaves more like direct + execution of ``setup.py``, and hence should restore compatibility with projects + that were unable to be installed with ``pip`` 19.0. This raised the minimum + required version of ``setuptools`` for such builds to 40.8.0. (`#6163 `_) +- Allow ``RECORD`` lines with more than three elements, and display a warning. (`#6165 `_) +- ``AdjacentTempDirectory`` fails on unwritable directory instead of locking up the uninstall command. (`#6169 `_) +- Make failed uninstalls roll back more reliably and better at avoiding naming conflicts. (`#6194 `_) +- Ensure the correct wheel file is copied when building PEP 517 distribution is built. (`#6196 `_) +- The Python 2 end of life warning now only shows on CPython, which is the + implementation that has announced end of life plans. (`#6207 `_) + +Improved Documentation +---------------------- + +- Re-write README and documentation index (`#5815 `_) + + +19.0.1 (2019-01-23) +=================== + +Bug Fixes +--------- + +- Fix a crash when using --no-cache-dir with PEP 517 distributions (`#6158 `_, `#6171 `_) + + +19.0 (2019-01-22) +================= + +Deprecations and Removals +------------------------- + +- Deprecate support for Python 3.4 (`#6106 `_) +- Start printing a warning for Python 2.7 to warn of impending Python 2.7 End-of-life and + prompt users to start migrating to Python 3. (`#6148 `_) +- Remove the deprecated ``--process-dependency-links`` option. (`#6060 `_) +- Remove the deprecated SVN editable detection based on dependency links + during freeze. (`#5866 `_) + +Features +-------- + +- Implement PEP 517 (allow projects to specify a build backend via pyproject.toml). (`#5743 `_) +- Implement manylinux2010 platform tag support. manylinux2010 is the successor + to manylinux1. It allows carefully compiled binary wheels to be installed + on compatible Linux platforms. (`#5008 `_) +- Improve build isolation: handle ``.pth`` files, so namespace packages are correctly supported under Python 3.2 and earlier. (`#5656 `_) +- Include the package name in a freeze warning if the package is not installed. (`#5943 `_) +- Warn when dropping an ``--[extra-]index-url`` value that points to an existing local directory. (`#5827 `_) +- Prefix pip's ``--log`` file lines with their timestamp. (`#6141 `_) + +Bug Fixes +--------- + +- Avoid creating excessively long temporary paths when uninstalling packages. (`#3055 `_) +- Redact the password from the URL in various log messages. (`#4746 `_, `#6124 `_) +- Avoid creating excessively long temporary paths when uninstalling packages. (`#3055 `_) +- Avoid printing a stack trace when given an invalid requirement. (`#5147 `_) +- Present 401 warning if username/password do not work for URL (`#4833 `_) +- Handle ``requests.exceptions.RetryError`` raised in ``PackageFinder`` that was causing pip to fail silently when some indexes were unreachable. (`#5270 `_, `#5483 `_) +- Handle a broken stdout pipe more gracefully (e.g. when running ``pip list | head``). (`#4170 `_) +- Fix crash from setting ``PIP_NO_CACHE_DIR=yes``. (`#5385 `_) +- Fix crash from unparsable requirements when checking installed packages. (`#5839 `_) +- Fix content type detection if a directory named like an archive is used as a package source. (`#5838 `_) +- Fix listing of outdated packages that are not dependencies of installed packages in ``pip list --outdated --not-required`` (`#5737 `_) +- Fix sorting ``TypeError`` in ``move_wheel_files()`` when installing some packages. (`#5868 `_) +- Fix support for invoking pip using ``python src/pip ...``. (`#5841 `_) +- Greatly reduce memory usage when installing wheels containing large files. (`#5848 `_) +- Editable non-VCS installs now freeze as editable. (`#5031 `_) +- Editable Git installs without a remote now freeze as editable. (`#4759 `_) +- Canonicalize sdist file names so they can be matched to a canonicalized package name passed to ``pip install``. (`#5870 `_) +- Properly decode special characters in SVN URL credentials. (`#5968 `_) +- Make ``PIP_NO_CACHE_DIR`` disable the cache also for truthy values like ``"true"``, ``"yes"``, ``"1"``, etc. (`#5735 `_) + +Vendored Libraries +------------------ + +- Include license text of vendored 3rd party libraries. (`#5213 `_) +- Update certifi to 2018.11.29 +- Update colorama to 0.4.1 +- Update distlib to 0.2.8 +- Update idna to 2.8 +- Update packaging to 19.0 +- Update pep517 to 0.5.0 +- Update pkg_resources to 40.6.3 (via setuptools) +- Update pyparsing to 2.3.1 +- Update pytoml to 0.1.20 +- Update requests to 2.21.0 +- Update six to 1.12.0 +- Update urllib3 to 1.24.1 + +Improved Documentation +---------------------- + +- Include the Vendoring Policy in the documentation. (`#5958 `_) +- Add instructions for running pip from source to Development documentation. (`#5949 `_) +- Remove references to removed ``#egg=-`` functionality (`#5888 `_) +- Fix omission of command name in HTML usage documentation (`#5984 `_) + + +18.1 (2018-10-05) +================= + +Features +-------- + +- Allow PEP 508 URL requirements to be used as dependencies. + + As a security measure, pip will raise an exception when installing packages from + PyPI if those packages depend on packages not also hosted on PyPI. + In the future, PyPI will block uploading packages with such external URL dependencies directly. (`#4187 `_) +- Allows dist options (--abi, --python-version, --platform, --implementation) when installing with --target (`#5355 `_) +- Support passing ``svn+ssh`` URLs with a username to ``pip install -e``. (`#5375 `_) +- pip now ensures that the RECORD file is sorted when installing from a wheel file. (`#5525 `_) +- Add support for Python 3.7. (`#5561 `_) +- Malformed configuration files now show helpful error messages, instead of tracebacks. (`#5798 `_) + +Bug Fixes +--------- + +- Checkout the correct branch when doing an editable Git install. (`#2037 `_) +- Run self-version-check only on commands that may access the index, instead of + trying on every run and failing to do so due to missing options. (`#5433 `_) +- Allow a Git ref to be installed over an existing installation. (`#5624 `_) +- Show a better error message when a configuration option has an invalid value. (`#5644 `_) +- Always revalidate cached simple API pages instead of blindly caching them for up to 10 + minutes. (`#5670 `_) +- Avoid caching self-version-check information when cache is disabled. (`#5679 `_) +- Avoid traceback printing on autocomplete after flags in the CLI. (`#5751 `_) +- Fix incorrect parsing of egg names if pip needs to guess the package name. (`#5819 `_) + +Vendored Libraries +------------------ + +- Upgrade certifi to 2018.8.24 +- Upgrade packaging to 18.0 +- Upgrade pyparsing to 2.2.1 +- Add pep517 version 0.2 +- Upgrade pytoml to 0.1.19 +- Upgrade pkg_resources to 40.4.3 (via setuptools) + +Improved Documentation +---------------------- + +- Fix "Requirements Files" reference in User Guide (`#user_guide_fix_requirements_file_ref `_) + + +18.0 (2018-07-22) +================= + +Process +------- + +- Switch to a Calendar based versioning scheme. +- Formally document our deprecation process as a minimum of 6 months of deprecation + warnings. +- Adopt and document NEWS fragment writing style. +- Switch to releasing a new, non-bug fix version of pip every 3 months. + +Deprecations and Removals +------------------------- + +- Remove the legacy format from pip list. (#3651, #3654) +- Dropped support for Python 3.3. (#3796) +- Remove support for cleaning up #egg fragment postfixes. (#4174) +- Remove the shim for the old get-pip.py location. (#5520) + + For the past 2 years, it's only been redirecting users to use the newer + https://bootstrap.pypa.io/get-pip.py location. + +Features +-------- + +- Introduce a new --prefer-binary flag, to prefer older wheels over newer source packages. (#3785) +- Improve autocompletion function on file name completion after options + which have ````, ```` or ```` as metavar. (#4842, #5125) +- Add support for installing PEP 518 build dependencies from source. (#5229) +- Improve status message when upgrade is skipped due to only-if-needed strategy. (#5319) + +Bug Fixes +--------- + +- Update pip's self-check logic to not use a virtualenv specific file and honor cache-dir. (#3905) +- Remove compiled pyo files for wheel packages. (#4471) +- Speed up printing of newly installed package versions. (#5127) +- Restrict install time dependency warnings to directly-dependant packages. (#5196, #5457) + + Warning about the entire package set has resulted in users getting confused as + to why pip is printing these warnings. +- Improve handling of PEP 518 build requirements: support environment markers and extras. (#5230, #5265) +- Remove username/password from log message when using index with basic auth. (#5249) +- Remove trailing os.sep from PATH directories to avoid false negatives. (#5293) +- Fix "pip wheel pip" being blocked by the "don't use pip to modify itself" check. (#5311, #5312) +- Disable pip's version check (and upgrade message) when installed by a different package manager. (#5346) + + This works better with Linux distributions where pip's upgrade message may + result in users running pip in a manner that modifies files that should be + managed by the OS's package manager. +- Check for file existence and unlink first when clobbering existing files during a wheel install. (#5366) +- Improve error message to be more specific when no files are found as listed in as listed in PKG-INFO. (#5381) +- Always read ``pyproject.toml`` as UTF-8. This fixes Unicode handling on Windows and Python 2. (#5482) +- Fix a crash that occurs when PATH not set, while generating script location warning. (#5558) +- Disallow packages with ``pyproject.toml`` files that have an empty build-system table. (#5627) + +Vendored Libraries +------------------ + +- Update CacheControl to 0.12.5. +- Update certifi to 2018.4.16. +- Update distro to 1.3.0. +- Update idna to 2.7. +- Update ipaddress to 1.0.22. +- Update pkg_resources to 39.2.0 (via setuptools). +- Update progress to 1.4. +- Update pytoml to 0.1.16. +- Update requests to 2.19.1. +- Update urllib3 to 1.23. + +Improved Documentation +---------------------- + +- Document how to use pip with a proxy server. (#512, #5574) +- Document that the output of pip show is in RFC-compliant mail header format. (#5261) + + +10.0.1 (2018-04-19) +=================== + +Features +-------- + +- Switch the default repository to the new "PyPI 2.0" running at + https://pypi.org/. (#5214) + +Bug Fixes +--------- + +- Fix a bug that made get-pip.py unusable on Windows without renaming. (#5219) +- Fix a TypeError when loading the cache on older versions of Python 2.7. + (#5231) +- Fix and improve error message when EnvironmentError occurs during + installation. (#5237) +- A crash when reinstalling from VCS requirements has been fixed. (#5251) +- Fix PEP 518 support when pip is installed in the user site. (#5524) + +Vendored Libraries +------------------ + +- Upgrade distlib to 0.2.7 + + +10.0.0 (2018-04-14) +=================== + +Bug Fixes +--------- + +- Prevent false-positive installation warnings due to incomplete name + normalization. (#5134) +- Fix issue where installing from Git with a short SHA would fail. (#5140) +- Accept pre-release versions when checking for conflicts with pip check or pip + install. (#5141) +- ``ioctl(fd, termios.TIOCGWINSZ, ...)`` needs 8 bytes of data (#5150) +- Do not warn about script location when installing to the directory containing + sys.executable. This is the case when 'pip install'ing without activating a + virtualenv. (#5157) +- Fix PEP 518 support. (#5188) +- Don't warn about script locations if ``--target`` is specified. (#5203) + + +10.0.0b2 (2018-04-02) +===================== + +Bug Fixes +--------- + +- Fixed line endings in CA Bundle - 10.0.0b1 was inadvertently released with Windows + line endings. (#5131) + + +10.0.0b1 (2018-03-31) +===================== + +Deprecations and Removals +------------------------- + +- Removed the deprecated ``--egg`` parameter to ``pip install``. (#1749) +- Removed support for uninstalling projects which have been installed using + distutils. distutils installed projects do not include metadata indicating + what files belong to that install and thus it is impossible to *actually* + uninstall them rather than just remove the metadata saying they've been + installed while leaving all of the actual files behind. (#2386) +- Removed the deprecated ``--download`` option to ``pip install``. (#2643) +- Removed the deprecated --(no-)use-wheel flags to ``pip install`` and ``pip + wheel``. (#2699) +- Removed the deprecated ``--allow-external``, ``--allow-all-external``, and + ``--allow-unverified`` options. (#3070) +- Switch the default for ``pip list`` to the columns format, and deprecate the + legacy format. (#3654, #3686) +- Deprecate support for Python 3.3. (#3796) +- Removed the deprecated ``--default-vcs`` option. (#4052) +- Removed the ``setup.py test`` support from our sdist as it wasn't being + maintained as a supported means to run our tests. (#4203) +- Dropped support for Python 2.6. (#4343) +- Removed the --editable flag from pip download, as it did not make sense + (#4362) +- Deprecate SVN detection based on dependency links in ``pip freeze``. (#4449) +- Move all of pip's APIs into the pip._internal package, properly reflecting + the fact that pip does not currently have any public APIs. (#4696, #4700) + +Features +-------- + +- Add `--progress-bar ` to ``pip download``, ``pip install`` and + ``pip wheel`` commands, to allow selecting a specific progress indicator or, + to completely suppress, (for example in a CI environment) use + ``--progress-bar off```. (#2369, #2756) +- Add `--no-color` to `pip`. All colored output is disabled if this flag is + detected. (#2449) +- pip uninstall now ignores the absence of a requirement and prints a warning. + (#3016, #4642) +- Improved the memory and disk efficiency of the HTTP cache. (#3515) +- Support for packages specifying build dependencies in pyproject.toml (see + `PEP 518 `__). Packages which + specify one or more build dependencies this way will be built into wheels in + an isolated environment with those dependencies installed. (#3691) +- pip now supports environment variable expansion in requirement files using + only ``${VARIABLE}`` syntax on all platforms. (#3728) +- Allowed combinations of -q and -v to act sanely. Then we don't need warnings + mentioned in the issue. (#4008) +- Add `--exclude-editable` to ``pip freeze`` and ``pip list`` to exclude + editable packages from installed package list. (#4015, #4016) +- Improve the error message for the common ``pip install ./requirements.txt`` + case. (#4127) +- Add support for the new ``@ url`` syntax from PEP 508. (#4175) +- Add setuptools version to the statistics sent to BigQuery. (#4209) +- Report the line which caused the hash error when using requirement files. + (#4227) +- Add a pip config command for managing configuration files. (#4240) +- Allow ``pip download`` to be used with a specific platform when ``--no-deps`` + is set. (#4289) +- Support build-numbers in wheel versions and support sorting with + build-numbers. (#4299) +- Change pip outdated to use PackageFinder in order to do the version lookup so + that local mirrors in Environments that do not have Internet connections can + be used as the Source of Truth for latest version. (#4336) +- pip now retries on more HTTP status codes, for intermittent failures. + Previously, it only retried on the standard 503. Now, it also retries on 500 + (transient failures on AWS S3), 520 and 527 (transient failures on + Cloudflare). (#4473) +- pip now displays where it is looking for packages, if non-default locations + are used. (#4483) +- Display a message to run the right command for modifying pip on Windows + (#4490) +- Add Man Pages for pip (#4491) +- Make uninstall command less verbose by default (#4493) +- Switch the default upgrade strategy to be 'only-if-needed' (#4500) +- Installing from a local directory or a VCS URL now builds a wheel to install, + rather than running ``setup.py install``. Wheels from these sources are not + cached. (#4501) +- Don't log a warning when installing a dependency from Git if the name looks + like a commit hash. (#4507) +- pip now displays a warning when it installs scripts from a wheel outside the + PATH. These warnings can be suppressed using a new --no-warn-script-location + option. (#4553) +- Local Packages can now be referenced using forward slashes on Windows. + (#4563) +- pip show learnt a new Required-by field that lists currently installed + packages that depend on the shown package (#4564) +- The command-line autocompletion engine ``pip show`` now autocompletes + installed distribution names. (#4749) +- Change documentation theme to be in line with Python Documentation (#4758) +- Add auto completion of short options. (#4954) +- Run 'setup.py develop' inside pep518 build environment. (#4999) +- pip install now prints an error message when it installs an incompatible + version of a dependency. (#5000) +- Added a way to distinguish between pip installed packages and those from the + system package manager in 'pip list'. Specifically, 'pip list -v' also shows + the installer of package if it has that meta data. (#949) +- Show install locations when list command ran with "-v" option. (#979) + +Bug Fixes +--------- + +- Allow pip to work if the ``GIT_DIR`` and ``GIT_WORK_TREE`` environment + variables are set. (#1130) +- Make ``pip install --force-reinstall`` not require passing ``--upgrade``. + (#1139) +- Return a failing exit status when `pip install`, `pip download`, or `pip + wheel` is called with no requirements. (#2720) +- Interactive setup.py files will no longer hang indefinitely. (#2732, #4982) +- Correctly reset the terminal if an exception occurs while a progress bar is + being shown. (#3015) +- "Support URL-encoded characters in URL credentials." (#3236) +- Don't assume sys.__stderr__.encoding exists (#3356) +- Fix ``pip uninstall`` when ``easy-install.pth`` lacks a trailing newline. + (#3741) +- Keep install options in requirements.txt from leaking. (#3763) +- pip no longer passes global options from one package to later packages in the + same requirement file. (#3830) +- Support installing from Git refs (#3876) +- Use pkg_resources to parse the entry points file to allow names with colons. + (#3901) +- ``-q`` specified once correctly sets logging level to WARNING, instead of + CRITICAL. Use `-qqq` to have the previous behavior back. (#3994) +- Shell completion scripts now use correct executable names (e.g., ``pip3`` + instead of ``pip``) (#3997) +- Changed vendored encodings from ``utf8`` to ``utf-8``. (#4076) +- Fixes destination directory of data_files when ``pip install --target`` is + used. (#4092) +- Limit the disabling of requests' pyopenssl to Windows only. Fixes + "SNIMissingWarning / InsecurePlatformWarning not fixable with pip 9.0 / + 9.0.1" (for non-Windows) (#4098) +- Support the installation of wheels with non-PEP 440 version in their + filenames. (#4169) +- Fall back to sys.getdefaultencoding() if locale.getpreferredencoding() + returns None in `pip.utils.encoding.auto_decode`. (#4184) +- Fix a bug where `SETUPTOOLS_SHIM` got called incorrectly for relative path + requirements by converting relative paths to absolute paths prior to calling + the shim. (#4208) +- Return the latest version number in search results. (#4219) +- Improve error message on permission errors (#4233) +- Fail gracefully when ``/etc/image_version`` (or another distro version file) + appears to exists but is not readable. (#4249) +- Avoid importing setuptools in the parent pip process, to avoid a race + condition when upgrading one of setuptools dependencies. (#4264) +- Fix for an incorrect ``freeze`` warning message due to a package being + included in multiple requirements files that were passed to ``freeze``. + Instead of warning incorrectly that the package is not installed, pip now + warns that the package was declared multiple times and lists the name of each + requirements file that contains the package in question. (#4293) +- Generalize help text for ``compile``/``no-compile`` flags. (#4316) +- Handle the case when ``/etc`` is not readable by the current user by using a + hardcoded list of possible names of release files. (#4320) +- Fixed a ``NameError`` when attempting to catch ``FileNotFoundError`` on + Python 2.7. (#4322) +- Ensure USER_SITE is correctly initialised. (#4437) +- Reinstalling an editable package from Git no longer assumes that the + ``master`` branch exists. (#4448) +- This fixes an issue where when someone who tries to use git with pip but pip + can't because git is not in the path environment variable. This clarifies the + error given to suggest to the user what might be wrong. (#4461) +- Improve handling of text output from build tools (avoid Unicode errors) + (#4486) +- Fix a "No such file or directory" error when using --prefix. (#4495) +- Allow commands to opt out of --require-venv. This allows pip help to work + even when the environment variable PIP_REQUIRE_VIRTUALENV is set. (#4496) +- Fix warning message on mismatched versions during installation. (#4655) +- pip now records installed files in a deterministic manner improving + reproducibility. (#4667) +- Fix an issue where ``pip install -e`` on a Git url would fail to update if a + branch or tag name is specified that happens to match the prefix of the + current ``HEAD`` commit hash. (#4675) +- Fix an issue where a variable assigned in a try clause was accessed in the + except clause, resulting in an undefined variable error in the except clause. + (#4811) +- Use log level `info` instead of `warning` when ignoring packages due to + environment markers. (#4876) +- Replaced typo mistake in subversion support. (#4908) +- Terminal size is now correctly inferred when using Python 3 on Windows. + (#4966) +- Abort if reading configuration causes encoding errors. (#4976) +- Add a ``--no-user`` option and use it when installing build dependencies. + (#5085) + +Vendored Libraries +------------------ + +- Upgraded appdirs to 1.4.3. +- Upgraded CacheControl to 0.12.3. +- Vendored certifi at 2017.7.27.1. +- Vendored chardet at 3.0.4. +- Upgraded colorama to 0.3.9. +- Upgraded distlib to 0.2.6. +- Upgraded distro to 1.2.0. +- Vendored idna at idna==2.6. +- Upgraded ipaddress to 1.0.18. +- Vendored msgpack-python at 0.4.8. +- Removed the vendored ordereddict. +- Upgraded progress to 1.3. +- Upgraded pyparsing to 2.2.0. +- Upgraded pytoml to 0.1.14. +- Upgraded requests to 2.18.4. +- Upgraded pkg_resources (via setuptools) to 36.6.0. +- Upgraded six to 1.11.0. +- Vendored urllib3 at 1.22. +- Upgraded webencodings to 0.5.1. + +Improved Documentation +---------------------- + +- Added documentation on usage of --build command line option (#4262) +- (#4358) +- Document how to call pip from your code, including the fact that we do not + provide a Python API. (#4743) + + +9.0.3 (2018-03-21) +================== + +- Fix an error where the vendored requests was not correctly containing itself + to only the internal vendored prefix. +- Restore compatibility with 2.6. + + +9.0.2 (2018-03-16) +================== + +- Fallback to using SecureTransport on macOS when the linked OpenSSL is too old + to support TLSv1.2. + + +9.0.1 (2016-11-06) +================== + +- Correct the deprecation message when not specifying a --format so that it + uses the correct setting name (``format``) rather than the incorrect one + (``list_format``). (#4058) +- Fix ``pip check`` to check all available distributions and not just the + local ones. (#4083) +- Fix a crash on non ASCII characters from `lsb_release`. (#4062) +- Fix an SyntaxError in an unused module of a vendored dependency. (#4059) +- Fix UNC paths on Windows. (#4064) + + +9.0.0 (2016-11-02) +================== + +- **BACKWARD INCOMPATIBLE** Remove the attempted autodetection of requirement + names from URLs, URLs must include a name via ``#egg=``. +- **DEPRECATION** ``pip install --egg`` have been deprecated and will be + removed in the future. This "feature" has a long list of drawbacks which + break nearly all of pip's other features in subtle and hard-to-diagnose + ways. +- **DEPRECATION** ``--default-vcs`` option. (#4052) +- **WARNING** pip 9 cache can break forward compatibility with previous pip + versions if your package repository allows chunked responses. (#4078) +- Add an ``--upgrade-strategy`` option to ``pip install``, to control how + dependency upgrades are managed. (#3972) +- Add a ``pip check`` command to check installed packages dependencies. (#3750) +- Add option allowing user to abort pip operation if file/directory exists +- Add Appveyor CI +- Uninstall existing packages when performing an editable installation of + the same packages. (#1548) +- ``pip show`` is less verbose by default. ``--verbose`` prints multiline + fields. (#3858) +- Add optional column formatting to ``pip list``. (#3651) +- Add ``--not-required`` option to ``pip list``, which lists packages that are + not dependencies of other packages. +- Fix builds on systems with symlinked ``/tmp`` directory for custom + builds such as numpy. (#3701) +- Fix regression in ``pip freeze``: when there is more than one git remote, + priority is given to the remote named ``origin``. (#3708, #3616). +- Fix crash when calling ``pip freeze`` with invalid requirement installed. + (#3704, #3681) +- Allow multiple ``--requirement`` files in ``pip freeze``. (#3703) +- Implementation of pep-503 ``data-requires-python``. When this field is + present for a release link, pip will ignore the download when + installing to a Python version that doesn't satisfy the requirement. +- ``pip wheel`` now works on editable packages too (it was only working on + editable dependencies before); this allows running ``pip wheel`` on the result + of ``pip freeze`` in presence of editable requirements. (#3695, #3291) +- Load credentials from ``.netrc`` files. (#3715, #3569) +- Add ``--platform``, ``--python-version``, ``--implementation`` and ``--abi`` + parameters to ``pip download``. These allow utilities and advanced users to + gather distributions for interpreters other than the one pip is being run on. + (#3760) +- Skip scanning virtual environments, even when venv/bin/python is a dangling + symlink. +- Added ``pip completion`` support for the ``fish`` shell. +- Fix problems on Windows on Python 2 when username or hostname contains + non-ASCII characters. (#3463, #3970, #4000) +- Use ``git fetch --tags`` to fetch tags in addition to everything else that + is normally fetched; this is necessary in case a git requirement url + points to a tag or commit that is not on a branch. (#3791) +- Normalize package names before using in ``pip show`` (#3976) +- Raise when Requires-Python do not match the running version and add + ``--ignore-requires-python`` option as escape hatch. (#3846) +- Report the correct installed version when performing an upgrade in some + corner cases. (#2382 +- Add ``-i`` shorthand for ``--index`` flag in ``pip search``. +- Do not optionally load C dependencies in requests. (#1840, #2930, #3024) +- Strip authentication from SVN url prior to passing it to ``svn``. + (#3697, #3209) +- Also install in platlib with ``--target`` option. (#3694, #3682) +- Restore the ability to use inline comments in requirements files passed to + ``pip freeze``. (#3680) + + +8.1.2 (2016-05-10) +================== + +- Fix a regression on systems with uninitialized locale. (#3575) +- Use environment markers to filter packages before determining if a required + wheel is supported. (#3254) +- Make glibc parsing for `manylinux1` support more robust for the variety of + glibc versions found in the wild. (#3588) +- Update environment marker support to fully support legacy and PEP 508 style + environment markers. (#3624) +- Always use debug logging to the ``--log`` file. (#3351) +- Don't attempt to wrap search results for extremely narrow terminal windows. + (#3655) + + +8.1.1 (2016-03-17) +================== + +- Fix regression with non-ascii requirement files on Python 2 and add support + for encoding headers in requirement files. (#3548, #3547) + + +8.1.0 (2016-03-05) +================== + +- Implement PEP 513, which adds support for the manylinux1 platform tag, + allowing carefully compiled binary wheels to be installed on compatible Linux + platforms. +- Allow wheels which are not specific to a particular Python interpreter but + which are specific to a particular platform. (#3202) +- Fixed an issue where ``call_subprocess`` would crash trying to print debug + data on child process failure. (#3521, #3522) +- Exclude the wheel package from the `pip freeze` output (like pip and + setuptools). (#2989) +- Allow installing modules from a subdirectory of a vcs repository in + non-editable mode. (#3217, #3466) +- Make pip wheel and pip download work with vcs urls with subdirectory option. + (#3466) +- Show classifiers in ``pip show``. +- Show PEP376 Installer in ``pip show``. (#3517) +- Unhide completion command. (#1810) +- Show latest version number in ``pip search`` results. (#1415) +- Decode requirement files according to their BOM if present. (#3485, #2865) +- Fix and deprecate package name detection from url path. (#3523, #3495) +- Correct the behavior where interpreter specific tags (such as cp34) were + being used on later versions of the same interpreter instead of only for that + specific interpreter. (#3472) +- Fix an issue where pip would erroneously install a 64 bit wheel on a 32 bit + Python running on a 64 bit macOS machine. +- Do not assume that all git repositories have an origin remote. +- Correctly display the line to add to a requirements.txt for an URL based + dependency when ``--require-hashes`` is enabled. + + +8.0.3 (2016-02-25) +================== + +- Make ``install --quiet`` really quiet. (#3418) +- Fix a bug when removing packages in python 3: disable INI-style parsing of the + entry_point.txt file to allow entry point names with colons. (#3434) +- Normalize generated script files path in RECORD files. (#3448) +- Fix bug introduced in 8.0.0 where subcommand output was not shown, + even when the user specified ``-v`` / ``--verbose``. (#3486) +- Enable python -W with respect to PipDeprecationWarning. (#3455) +- Upgrade distlib to 0.2.2. +- Improved support for Jython when quoting executables in output scripts. + (#3467) +- Add a `--all` option to `pip freeze` to include usually skipped package + (like pip, setuptools and wheel) to the freeze output. (#1610) + + +8.0.2 (2016-01-21) +================== + +- Stop attempting to trust the system CA trust store because it's extremely + common for them to be broken, often in incompatible ways. (#3416) + + +8.0.1 (2016-01-21) +================== + +- Detect CAPaths in addition to CAFiles on platforms that provide them. +- Installing argparse or wsgiref will no longer warn or error - pip will allow + the installation even though it may be useless (since the installed thing + will be shadowed by the standard library). +- Upgrading a distutils installed item that is installed outside of a virtual + environment, while inside of a virtual environment will no longer warn or + error. +- Fix a bug where pre-releases were showing up in ``pip list --outdated`` + without the ``--pre`` flag. +- Switch the SOABI emulation from using RuntimeWarnings to debug logging. +- Rollback the removal of the ability to uninstall distutils installed items + until a future date. + + +8.0.0 (2016-01-19) +================== + +- **BACKWARD INCOMPATIBLE** Drop support for Python 3.2. +- **BACKWARD INCOMPATIBLE** Remove the ability to find any files other than the + ones directly linked from the index or find-links pages. +- **BACKWARD INCOMPATIBLE** Remove the ``--download-cache`` which had been + deprecated and no-op'd in 6.0. +- **BACKWARD INCOMPATIBLE** Remove the ``--log-explicit-levels`` which had been + deprecated in 6.0. +- **BACKWARD INCOMPATIBLE** Change pip wheel --wheel-dir default path from + /wheelhouse to . +- Deprecate and no-op the ``--allow-external``, ``--allow-all-external``, and + ``--allow-unverified`` functionality that was added as part of PEP 438. With + changes made to the repository protocol made in PEP 470, these options are no + longer functional. +- Allow ``--trusted-host`` within a requirements file. (#2822) +- Allow ``--process-dependency-links`` within a requirements file. (#1274) +- Allow ``--pre`` within a requirements file. (#1273) +- Allow repository URLs with secure transports to count as trusted. (E.g., + "git+ssh" is okay.) (#2811) +- Implement a top-level ``pip download`` command and deprecate + ``pip install --download``. +- When uninstalling, look for the case of paths containing symlinked + directories (#3141, #3154) +- When installing, if building a wheel fails, clear up the build directory + before falling back to a source install. (#3047) +- Fix user directory expansion when ``HOME=/``. Workaround for Python bug + https://bugs.python.org/issue14768. (#2996) +- Correct reporting of requirements file line numbers. (#3009, #3125) +- Fixed Exception(IOError) for ``pip freeze`` and ``pip list`` commands with + subversion >= 1.7. (#1062, #3346) +- Provide a spinner showing that progress is happening when installing or + building a package via ``setup.py``. This will alleviate concerns that + projects with unusually long build times have with pip appearing to stall. +- Include the functionality of ``peep`` into pip, allowing hashes to be baked + into a requirements file and ensuring that the packages being downloaded + match one of those hashes. This is an additional, opt-in security measure + that, when used, removes the need to trust the repository. +- Fix a bug causing pip to not select a wheel compiled against an OSX SDK later + than what Python itself was compiled against when running on a newer version + of OSX. +- Add a new ``--prefix`` option for ``pip install`` that supports wheels and + sdists. (#3252) +- Fixed issue regarding wheel building with setup.py using a different encoding + than the system. (#2042) +- Drop PasteScript specific egg_info hack. (#3270) +- Allow combination of pip list options --editable with --outdated/--uptodate. + (#933) +- Gives VCS implementations control over saying whether a project is under + their control. (#3258) +- Git detection now works when ``setup.py`` is not at the Git repo root + and when ``package_dir`` is used, so ``pip freeze`` works in more + cases. (#3258) +- Correctly freeze Git develop packages in presence of the &subdirectory + option (#3258) +- The detection of editable packages now relies on the presence of ``.egg-link`` + instead of looking for a VCS, so ``pip list -e`` is more reliable. (#3258) +- Add the ``--prefix`` flag to ``pip install`` which allows specifying a root + prefix to use instead of ``sys.prefix``. (#3252) +- Allow duplicate specifications in the case that only the extras differ, and + union all specified extras together. (#3198) +- Fix the detection of the user's current platform on OSX when determining the + OSX SDK version. (#3232) +- Prevent the automatically built wheels from mistakenly being used across + multiple versions of Python when they may not be correctly configured for + that by making the wheel specific to a specific version of Python and + specific interpreter. (#3225) +- Emulate the SOABI support in wheels from Python 2.x on Python 2.x as closely + as we can with the information available within the interpreter. (#3075) +- Don't roundtrip to the network when git is pinned to a specific commit hash + and that hash already exists locally. (#3066) +- Prefer wheels built against a newer SDK to wheels built against an older SDK + on OSX. (#3163) +- Show entry points for projects installed via wheel. (#3122) +- Improve message when an unexisting path is passed to --find-links option. + (#2968) +- pip freeze does not add the VCS branch/tag name in the #egg=... fragment + anymore. (#3312) +- Warn on installation of editable if the provided #egg=name part does not + match the metadata produced by `setup.py egg_info`. (#3143) +- Add support for .xz files for python versions supporting them (>= 3.3). (#722) + + +7.1.2 (2015-08-22) +================== + +- Don't raise an error if pip is not installed when checking for the latest pip + version. + + +7.1.1 (2015-08-20) +================== + +- Check that the wheel cache directory is writable before we attempt to write + cached files to them. +- Move the pip version check until *after* any installs have been performed, + thus removing the extraneous warning when upgrading pip. +- Added debug logging when using a cached wheel. +- Respect platlib by default on platforms that have it separated from purelib. +- Upgrade packaging to 15.3. + - Normalize post-release spellings for rev/r prefixes. +- Upgrade distlib to 0.2.1. + - Updated launchers to decode shebangs using UTF-8. This allows non-ASCII + pathnames to be correctly handled. + - Ensured that the executable written to shebangs is normcased. + - Changed ScriptMaker to work better under Jython. +- Upgrade ipaddress to 1.0.13. + + +7.1.0 (2015-06-30) +================== + +- Allow constraining versions globally without having to know exactly what will + be installed by the pip command. (#2731) +- Accept --no-binary and --only-binary via pip.conf. (#2867) +- Allow ``--allow-all-external`` within a requirements file. +- Fixed an issue where ``--user`` could not be used when ``--prefix`` was used + in a distutils configuration file. +- Fixed an issue where the SOABI tags were not correctly being generated on + Python 3.5. +- Fixed an issue where we were advising windows users to upgrade by directly + executing pip, when that would always fail on Windows. +- Allow ``~`` to be expanded within a cache directory in all situations. + + +7.0.3 (2015-06-01) +================== + +- Fixed a regression where ``--no-cache-dir`` would raise an exception. (#2855) + + +7.0.2 (2015-06-01) +================== + +- **BACKWARD INCOMPATIBLE** Revert the change (released in v7.0.0) that + required quoting in requirements files around specifiers containing + environment markers. (#2841) +- **BACKWARD INCOMPATIBLE** Revert the accidental introduction of support for + options interleaved with requirements, version specifiers etc in + ``requirements`` files. (#2841) +- Expand ``~`` in the cache directory when caching wheels. (#2816) +- Use ``python -m pip`` instead of ``pip`` when recommending an upgrade command + to Windows users. + + +7.0.1 (2015-05-22) +================== + +- Don't build and cache wheels for non-editable installations from VCSs. +- Allow ``--allow-all-external`` inside of a requirements.txt file, fixing a + regression in 7.0. + + +7.0.0 (2015-05-21) +================== + +- **BACKWARD INCOMPATIBLE** Removed the deprecated ``--mirror``, + ``--use-mirrors``, and ``-M`` options. +- **BACKWARD INCOMPATIBLE** Removed the deprecated ``zip`` and ``unzip`` + commands. +- **BACKWARD INCOMPATIBLE** Removed the deprecated ``--no-install`` and + ``--no-download`` options. +- **BACKWARD INCOMPATIBLE** No longer implicitly support an insecure origin + origin, and instead require insecure origins be explicitly trusted with the + ``--trusted-host`` option. +- **BACKWARD INCOMPATIBLE** Removed the deprecated link scraping that attempted + to parse HTML comments for a specially formatted comment. +- **BACKWARD INCOMPATIBLE** Requirements in requirements files containing + markers must now be quoted due to parser changes. For example, use + ``"SomeProject; python_version < '2.7'"``, not simply + ``SomeProject; python_version < '2.7'`` (#2697, #2725) +- `get-pip.py` now installs the "wheel" package, when it's not already + installed. (#2800) +- Ignores bz2 archives if Python wasn't compiled with bz2 support. (#497) +- Support ``--install-option`` and ``--global-option`` per requirement in + requirement files. (#2537) +- Build Wheels prior to installing from sdist, caching them in the pip cache + directory to speed up subsequent installs. (#2618) +- Allow fine grained control over the use of wheels and source builds. (#2699) +- ``--no-use-wheel`` and ``--use-wheel`` are deprecated in favour of new + options ``--no-binary`` and ``--only-binary``. The equivalent of + ``--no-use-wheel`` is ``--no-binary=:all:``. (#2699) +- The use of ``--install-option``, ``--global-option`` or ``--build-option`` + disable the use of wheels, and the autobuilding of wheels. (#2711, #2677) +- Improve logging when a requirement marker doesn't match your environment. + (#2735) +- Removed the temporary modifications (that began in pip v1.4 when distribute + and setuptools merged) that allowed distribute to be considered a conflict to + setuptools. ``pip install -U setuptools`` will no longer upgrade "distribute" + to "setuptools". Instead, use ``pip install -U distribute``. (#2767) +- Only display a warning to upgrade pip when the newest version is a final + release and it is not a post release of the version we already have + installed. (#2766) +- Display a warning when attempting to access a repository that uses HTTPS when + we don't have Python compiled with SSL support. (#2761) +- Allowing using extras when installing from a file path without requiring the + use of an editable. (#2785) +- Fix an infinite loop when the cache directory is stored on a file system + which does not support hard links. (#2796) +- Remove the implicit debug log that was written on every invocation, instead + users will need to use ``--log`` if they wish to have one. (#2798) + + +6.1.1 (2015-04-07) +================== + +- No longer ignore dependencies which have been added to the standard library, + instead continue to install them. + + +6.1.0 (2015-04-07) +================== + +- Fixes upgrades failing when no potential links were found for dependencies + other than the current installation. (#2538, #2502) +- Use a smoother progress bar when the terminal is capable of handling it, + otherwise fallback to the original ASCII based progress bar. +- Display much less output when `pip install` succeeds, because on success, + users probably don't care about all the nitty gritty details of compiling and + installing. When `pip install` fails, display the failed install output once + instead of twice, because once is enough. (#2487) +- Upgrade the bundled copy of requests to 2.6.0, fixing CVE-2015-2296. +- Display format of latest package when using ``pip list --outdated``. (#2475) +- Don't use pywin32 as ctypes should always be available on Windows, using + pywin32 prevented uninstallation of pywin32 on Windows. (:pull:`2467`) +- Normalize the ``--wheel-dir`` option, expanding out constructs such as ``~`` + when used. (#2441) +- Display a warning when an undefined extra has been requested. (#2142) +- Speed up installing a directory in certain cases by creating a sdist instead + of copying the entire directory. (#2535) +- Don't follow symlinks when uninstalling files (#2552) +- Upgrade the bundled copy of cachecontrol from 0.11.1 to 0.11.2. (#2481, #2595) +- Attempt to more smartly choose the order of installation to try and install + dependencies before the projects that depend on them. (#2616) +- Skip trying to install libraries which are part of the standard library. + (#2636, #2602) +- Support arch specific wheels that are not tied to a specific Python ABI. + (#2561) +- Output warnings and errors to stderr instead of stdout. (#2543) +- Adjust the cache dir file checks to only check ownership if the effective + user is root. (#2396) +- Install headers into a per project name directory instead of all of them into + the root directory when inside of a virtual environment. (#2421) + + +6.0.8 (2015-02-04) +================== + +- Fix an issue where the ``--download`` flag would cause pip to no longer use + randomized build directories. +- Fix an issue where pip did not properly unquote quoted URLs which contain + characters like PEP 440's epoch separator (``!``). +- Fix an issue where distutils installed projects were not actually uninstalled + and deprecate attempting to uninstall them altogether. +- Retry deleting directories in case a process like an antivirus is holding the + directory open temporarily. +- Fix an issue where pip would hide the cursor on Windows but would not reshow + it. + + +6.0.7 (2015-01-28) +================== + +- Fix a regression where Numpy requires a build path without symlinks to + properly build. +- Fix a broken log message when running ``pip wheel`` without a requirement. +- Don't mask network errors while downloading the file as a hash failure. +- Properly create the state file for the pip version check so it only happens + once a week. +- Fix an issue where switching between Python 3 and Python 2 would evict cached + items. +- Fix a regression where pip would be unable to successfully uninstall a + project without a normalized version. + + +6.0.6 (2015-01-03) +================== + +- Continue the regression fix from 6.0.5 which was not a complete fix. + + +6.0.5 (2015-01-03) +================== + +- Fix a regression with 6.0.4 under Windows where most commands would raise an + exception due to Windows not having the ``os.geteuid()`` function. + + +6.0.4 (2015-01-03) +================== + +- Fix an issue where ANSI escape codes would be used on Windows even though the + Windows shell does not support them, causing odd characters to appear with + the progress bar. +- Fix an issue where using -v would cause an exception saying + ``TypeError: not all arguments converted during string formatting``. +- Fix an issue where using -v with dependency links would cause an exception + saying ``TypeError: 'InstallationCandidate' object is not iterable``. +- Fix an issue where upgrading distribute would cause an exception saying + ``TypeError: expected string or buffer``. +- Show a warning and disable the use of the cache directory when the cache + directory is not owned by the current user, commonly caused by using ``sudo`` + without the ``-H`` flag. +- Update PEP 440 support to handle the latest changes to PEP 440, particularly + the changes to ``>V`` and `` when the given + specifier doesn't match anything. +- Fix an issue where installing from a directory would not copy over certain + directories which were being excluded, however some build systems rely on + them. + + +6.0 (2014-12-22) +================ + +- **PROCESS** Version numbers are now simply ``X.Y`` where the leading ``1`` + has been dropped. +- **BACKWARD INCOMPATIBLE** Dropped support for Python 3.1. +- **BACKWARD INCOMPATIBLE** Removed the bundle support which was deprecated in + 1.4. (#1806) +- **BACKWARD INCOMPATIBLE** File lists generated by `pip show -f` are now + rooted at the location reported by show, rather than one (unstated) + directory lower. (#1933) +- **BACKWARD INCOMPATIBLE** The ability to install files over the FTP protocol + was accidentally lost in pip 1.5 and it has now been decided to not restore + that ability. +- **BACKWARD INCOMPATIBLE** PEP 440 is now fully implemented, this means that + in some cases versions will sort differently or version specifiers will be + interpreted differently than previously. The common cases should all function + similarly to before. +- **DEPRECATION** ``pip install --download-cache`` and + ``pip wheel --download-cache`` command line flags have been deprecated and + the functionality removed. Since pip now automatically configures and uses + it's internal HTTP cache which supplants the ``--download-cache`` the + existing options have been made non functional but will still be accepted + until their removal in pip v8.0. For more information please see + https://pip.pypa.io/en/stable/reference/pip_install.html#caching +- **DEPRECATION** ``pip install --build`` and ``pip install --no-clean`` are now + *NOT* deprecated. This reverses the deprecation that occurred in v1.5.3. + (#906) +- **DEPRECATION** Implicitly accessing URLs which point to an origin which is + not a secure origin, instead requiring an opt-in for each host using the new + ``--trusted-host`` flag (``pip install --trusted-host example.com foo``). +- Allow the new ``--trusted-host`` flag to also disable TLS verification for + a particular hostname. +- Added a ``--user`` flag to ``pip freeze`` and ``pip list`` to check the + user site directory only. +- Silence byte compile errors when installation succeed. (#1873) +- Added a virtualenv-specific configuration file. (#1364) +- Added site-wide configuration files. (1978) +- Added an automatic check to warn if there is an updated version of pip + available. (#2049) +- `wsgiref` and `argparse` (for >py26) are now excluded from `pip list` and + `pip freeze`. (#1606, #1369) +- Add ``--client-cert`` option for SSL client certificates. (#1424) +- `pip show --files` was broken for wheel installs. (#1635, #1484) +- install_lib should take precedence when reading distutils config. + (#1642, #1641) +- Send `Accept-Encoding: identity` when downloading files in an attempt to + convince some servers who double compress the downloaded file to stop doing + so. (#1688) +- Stop breaking when given pip commands in uppercase (#1559, #1725) +- pip no longer adds duplicate logging consumers, so it won't create duplicate + output when being called multiple times. (#1618, #1723) +- `pip wheel` now returns an error code if any wheels fail to build. (#1769) +- `pip wheel` wasn't building wheels for dependencies of editable requirements. + (#1775) +- Allow the use of ``--no-use-wheel`` within a requirements file. (#1859) +- Attempt to locate system TLS certificates to use instead of the included + CA Bundle if possible. (#1680, #1866) +- Allow use of Zip64 extension in Wheels and other zip files. (#1319, #1868) +- Properly handle an index or --find-links target which has a without a + href attribute. (#1101, #1869) +- Properly handle extras when a project is installed via Wheel. (#1885, #1896) +- Added support to respect proxies in ``pip search``. + (#1180, #932, #1104, #1902) +- `pip install --download` works with vcs links. (#798, #1060, #1926) +- Disabled warning about insecure index host when using localhost. Based off of + Guy Rozendorn's work in #1718. (#1456, #1967) +- Allow the use of OS standard user configuration files instead of ones simply + based around ``$HOME``. (#2021) +- When installing directly from wheel paths or urls, previous versions were not + uninstalled. (#1825, #804, #1838) +- Detect the location of the ``.egg-info`` directory by looking for any file + located inside of it instead of relying on the record file listing a + directory. (#2075, #2076) +- Use a randomized and secure default build directory when possible. + (#1964, #1935, #676, #2122, CVE-2014-8991) +- Support environment markers in requirements.txt files. (#1433, #2134) +- Automatically retry failed HTTP requests by default. (#1444, #2147) +- Handle HTML Encoding better using a method that is more similar to how + browsers handle it. (#1100, #1874) +- Reduce the verbosity of the pip command by default. (#2175, #2177, #2178) +- Fixed :issue:`2031` - Respect sys.executable on OSX when installing from + Wheels. +- Display the entire URL of the file that is being downloaded when downloading + from a non PyPI repository. (#2183) +- Support setuptools style environment markers in a source distribution. (#2153) + + +1.5.6 (2014-05-16) +================== + +- Upgrade requests to 2.3.0 to fix an issue with proxies on Python 3.4.1. + (#1821) + + +1.5.5 (2014-05-03) +================== + +- Uninstall issues on debianized pypy, specifically issues with setuptools + upgrades. (#1632, #1743) +- Update documentation to point at https://bootstrap.pypa.io/get-pip.py for + bootstrapping pip. +- Update docs to point to https://pip.pypa.io/ +- Upgrade the bundled projects (distlib==0.1.8, html5lib==1.0b3, six==1.6.1, + colorama==0.3.1, setuptools==3.4.4). + + +1.5.4 (2014-02-21) +================== + +- Correct deprecation warning for ``pip install --build`` to only notify when + the `--build` value is different than the default. + + +1.5.3 (2014-02-20) +================== + +- **DEPRECATION** ``pip install --build`` and ``pip install --no-clean`` are now + deprecated. (#906) +- Fixed being unable to download directly from wheel paths/urls, and when wheel + downloads did occur using requirement specifiers, dependencies weren't + downloaded. (#1112, #1527) +- ``pip wheel`` was not downloading wheels that already existed. (#1320, #1524) +- ``pip install --download`` was failing using local ``--find-links``. + (#1111, #1524) +- Workaround for Python bug https://bugs.python.org/issue20053. (#1544) +- Don't pass a unicode __file__ to setup.py on Python 2.x. (#1583) +- Verify that the Wheel version is compatible with this pip. (#1569) + + +1.5.2 (2014-01-26) +================== + +- Upgraded the vendored ``pkg_resources`` and ``_markerlib`` to setuptools 2.1. +- Fixed an error that prevented accessing PyPI when pyopenssl, ndg-httpsclient, + and pyasn1 are installed. +- Fixed an issue that caused trailing comments to be incorrectly included as + part of the URL in a requirements file. + + +1.5.1 (2014-01-20) +================== + +- pip now only requires setuptools (any setuptools, not a certain version) when + installing distributions from src (i.e. not from wheel). (#1434) +- `get-pip.py` now installs setuptools, when it's not already installed. (#1475) +- Don't decode downloaded files that have a ``Content-Encoding`` header. (#1435) +- Fix to correctly parse wheel filenames with single digit versions. (#1445) +- If `--allow-unverified` is used assume it also means `--allow-external`. + (#1457) + + +1.5 (2014-01-01) +================ + +- **BACKWARD INCOMPATIBLE** pip no longer supports the ``--use-mirrors``, + ``-M``, and ``--mirrors`` flags. The mirroring support has been removed. In + order to use a mirror specify it as the primary index with ``-i`` or + ``--index-url``, or as an additional index with ``--extra-index-url``. + (#1098, CVE-2013-5123) +- **BACKWARD INCOMPATIBLE** pip no longer will scrape insecure external urls by + default nor will it install externally hosted files by default. Users may opt + into installing externally hosted or insecure files or urls using + ``--allow-external PROJECT`` and ``--allow-unverified PROJECT``. (#1055) +- **BACKWARD INCOMPATIBLE** pip no longer respects dependency links by default. + Users may opt into respecting them again using ``--process-dependency-links``. +- **DEPRECATION** ``pip install --no-install`` and ``pip install + --no-download`` are now formally deprecated. See #906 for discussion on + possible alternatives, or lack thereof, in future releases. +- **DEPRECATION** ``pip zip`` and ``pip unzip`` are now formally deprecated. +- pip will now install Mac OSX platform wheels from PyPI. (:pull:`1278`) +- pip now generates the appropriate platform-specific console scripts when + installing wheels. (#1251) +- pip now confirms a wheel is supported when installing directly from a path or + url. (#1315) +- ``--ignore-installed`` now behaves again as designed, after it was + unintentionally broke in v0.8.3 when fixing #14. (#1097, #1352) +- Fixed a bug where global scripts were being removed when uninstalling --user + installed packages. (#1353) +- ``--user`` wasn't being respected when installing scripts from wheels. + (#1163, #1176) +- Assume '_' means '-' in versions from wheel filenames. (#1150, #1158) +- Error when using --log with a failed install. (#219, #1205) +- Fixed logging being buffered and choppy in Python 3. (#1131) +- Don't ignore --timeout. (#70, #1202) +- Fixed an error when setting PIP_EXISTS_ACTION. (#772, #1201) +- Added colors to the logging output in order to draw attention to important + warnings and errors. (#1109) +- Added warnings when using an insecure index, find-link, or dependency link. + (#1121) +- Added support for installing packages from a subdirectory using the + ``subdirectory`` editable option. (#1082) +- Fixed "TypeError: bad operand type for unary" in some cases when installing + wheels using --find-links. (#1192, #1218) +- Archive contents are now written based on system defaults and umask (i.e. + permissions are not preserved), except that regular files with any execute + permissions have the equivalent of "chmod +x" applied after being written. + (#1133, #317, #1146) +- PreviousBuildDirError now returns a non-zero exit code and prevents the + previous build dir from being cleaned in all cases. (#1162) +- Renamed --allow-insecure to --allow-unverified, however the old name will + continue to work for a period of time. (#1257) +- Fixed an error when installing local projects with symlinks in Python 3. + (#1006, #1311) +- The previously hidden ``--log-file`` option, is now shown as a general option. + (#1316) + + +1.4.1 (2013-08-07) +================== + +- **New Signing Key** Release 1.4.1 is using a different key than normal with + fingerprint: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA +- Fixed issues with installing from pybundle files. (#1116) +- Fixed error when sysconfig module throws an exception. (#1095) +- Don't ignore already installed pre-releases. (#1076) +- Fixes related to upgrading setuptools. (#1092) +- Fixes so that --download works with wheel archives. (#1113) +- Fixes related to recognizing and cleaning global build dirs. (#1080) + + +1.4 (2013-07-23) +================ + +- **BACKWARD INCOMPATIBLE** pip now only installs stable versions by default, + and offers a new ``--pre`` option to also find pre-release and development + versions. (#834) +- **BACKWARD INCOMPATIBLE** Dropped support for Python 2.5. The minimum + supported Python version for pip 1.4 is Python 2.6. +- Added support for installing and building wheel archives. Thanks Daniel Holth, + Marcus Smith, Paul Moore, and Michele Lacchia (#845) +- Applied security patch to pip's ssl support related to certificate DNS + wildcard matching (https://bugs.python.org/issue17980). +- To satisfy pip's setuptools requirement, pip now recommends setuptools>=0.8, + not distribute. setuptools and distribute are now merged into one project + called 'setuptools'. (#1003) +- pip will now warn when installing a file that is either hosted externally to + the index or cannot be verified with a hash. In the future pip will default + to not installing them and will require the flags --allow-external NAME, and + --allow-insecure NAME respectively. (#985) +- If an already-downloaded or cached file has a bad hash, re-download it rather + than erroring out. (#963) +- ``pip bundle`` and support for installing from pybundle files is now + considered deprecated and will be removed in pip v1.5. +- Fix a number of issues related to cleaning up and not reusing build + directories. (#413, #709, #634, #602, #939, #865, #948) +- Added a User Agent so that pip is identifiable in logs. (#901) +- Added ssl and --user support to get-pip.py. Thanks Gabriel de Perthuis. + (#895) +- Fixed the proxy support, which was broken in pip 1.3.x (#840) +- Fixed pip failing when server does not send content-type header. Thanks + Hugo Lopes Tavares and Kelsey Hightower. (#32, #872) +- "Vendorized" distlib as pip.vendor.distlib (https://distlib.readthedocs.io/). +- Fixed git VCS backend with git 1.8.3. (#967) + + +1.3.1 (2013-03-08) +================== + +- Fixed a major backward incompatible change of parsing URLs to externally + hosted packages that got accidentally included in 1.3. + + +1.3 (2013-03-07) +================ + +- SSL Cert Verification; Make https the default for PyPI access. Thanks + James Cleveland, Giovanni Bajo, Marcus Smith and many others. + (#791, CVE-2013-1629) +- Added "pip list" for listing installed packages and the latest version + available. Thanks Rafael Caricio, Miguel Araujo, Dmitry Gladkov. (#752) +- Fixed security issues with pip's use of temp build directories. + Thanks David (d1b) and Thomas Guttler. (#780, CVE-2013-1888) +- Improvements to sphinx docs and cli help. (#773) +- Fixed an issue dealing with macOS temp dir handling, which was causing global + NumPy installs to fail. (#707, #768) +- Split help output into general vs command-specific option groups. + Thanks Georgi Valkov. (#744, #721) +- Fixed dependency resolution when installing from archives with uppercase + project names. (#724) +- Fixed problem where re-installs always occurred when using file:// find-links. + (#683, #702) +- "pip install -v" now shows the full download url, not just the archive name. + Thanks Marc Abramowitz (#687) +- Fix to prevent unnecessary PyPI redirects. Thanks Alex Gronholm (#695) +- Fixed an install failure under Python 3 when the same version of a package is + found under 2 different URLs. Thanks Paul Moore (#670, #671) +- Fix git submodule recursive updates. Thanks Roey Berman. (#674) +- Explicitly ignore rel='download' links while looking for html pages. Thanks + Maxime R. (#677) +- --user/--upgrade install options now work together. Thanks 'eevee' for + discovering the problem. (#705) +- Added check in ``install --download`` to prevent re-downloading if the target + file already exists. Thanks Andrey Bulgakov. (#669) +- Added support for bare paths (including relative paths) as argument to + `--find-links`. Thanks Paul Moore for draft patch. +- Added support for --no-index in requirements files. +- Added "pip show" command to get information about an installed package. + Thanks Kelsey Hightower and Rafael Caricio. (#131) +- Added `--root` option for "pip install" to specify root directory. Behaves + like the same option in distutils but also plays nice with pip's egg-info. + Thanks Przemek Wrzos. (#253, #693) + + +1.2.1 (2012-09-06) +================== + +- Fixed a regression introduced in 1.2 about raising an exception when + not finding any files to uninstall in the current environment. Thanks for + the fix, Marcus Smith. + + +1.2 (2012-09-01) +================ + +- **Dropped support for Python 2.4** The minimum supported Python version is + now Python 2.5. +- Fixed PyPI mirror support being broken on some DNS responses. Thanks + philwhin. (#605) +- Fixed pip uninstall removing files it didn't install. Thanks pjdelport. + (#355) +- Fixed a number of issues related to improving support for the user + installation scheme. Thanks Marcus Smith. (#493, #494, #440, #573) +- Write failure log to temp file if default location is not writable. Thanks + andreigc. +- Pull in submodules for git editable checkouts. Thanks Hsiaoming Yang and + Markus Hametner. (#289, #421) +- Use a temporary directory as the default build location outside of a + virtualenv. Thanks Ben Rosser. (#339, #381) +- Added support for specifying extras with local editables. Thanks Nick + Stenning. +- Added ``--egg`` flag to request egg-style rather than flat installation. + Thanks Kamal Bin Mustafa. (#3) +- Prevent e.g. ``gmpy2-2.0.tar.gz`` from matching a request to + ``pip install gmpy``; sdist filename must begin with full project name + followed by a dash. Thanks casevh for the report. (#510) +- Allow package URLS to have querystrings. Thanks W. Trevor King. (#504) +- pip freeze now falls back to non-editable format rather than blowing up if it + can't determine the origin repository of an editable. Thanks Rory McCann. + (#58) +- Added a `__main__.py` file to enable `python -m pip` on Python versions + that support it. Thanks Alexey Luchko. +- Fixed upgrading from VCS url of project that does exist on index. Thanks + Andrew Knapp for the report. (#487) +- Fix upgrade from VCS url of project with no distribution on index. + Thanks Andrew Knapp for the report. (#486) +- Add a clearer error message on a malformed VCS url. Thanks Thomas Fenzl. + (#427) +- Added support for using any of the built in guaranteed algorithms in + ``hashlib`` as a checksum hash. +- Raise an exception if current working directory can't be found or accessed. + (#321) +- Removed special casing of the user directory and use the Python default + instead. (#82) +- Only warn about version conflicts if there is actually one. This re-enables + using ``==dev`` in requirements files. (#436) +- Moved tests to be run on Travis CI: https://travis-ci.org/pypa/pip +- Added a better help formatter. + + +1.1 (2012-02-16) +================ + +- Don't crash when a package's setup.py emits UTF-8 and then fails. Thanks + Marc Abramowitz. (#326) +- Added ``--target`` option for installing directly to arbitrary directory. + Thanks Stavros Korokithakis. +- Added support for authentication with Subversion repositories. Thanks + Qiangning Hong. +- ``--download`` now downloads dependencies as well. Thanks Qiangning Hong. + (#315) +- Errors from subprocesses will display the current working directory. + Thanks Antti Kaihola. +- Fixed compatibility with Subversion 1.7. Thanks Qiangning Hong. Note that + setuptools remains incompatible with Subversion 1.7; to get the benefits of + pip's support you must use Distribute rather than setuptools. (#369) +- Ignore py2app-generated macOS mpkg zip files in finder. Thanks Rene Dudfield. + (#57) +- Log to ~/Library/Logs/ by default on macOS framework installs. Thanks + Dan Callahan for report and patch. (#182) +- Understand version tags without minor version ("py3") in sdist filenames. + Thanks Stuart Andrews for report and Olivier Girardot for patch. (#310) +- pip now supports optionally installing setuptools "extras" dependencies; e.g. + "pip install Paste[openid]". Thanks Matt Maker and Olivier Girardot. (#7) +- freeze no longer borks on requirements files with --index-url or --find-links. + Thanks Herbert Pfennig. (#391) +- Handle symlinks properly. Thanks lebedov for the patch. (#288) +- pip install -U no longer reinstalls the same versions of packages. Thanks + iguananaut for the pull request. (#49) +- Removed ``-E``/``--environment`` option and ``PIP_RESPECT_VIRTUALENV``; + both use a restart-in-venv mechanism that's broken, and neither one is + useful since every virtualenv now has pip inside it. Replace ``pip -E + path/to/venv install Foo`` with ``virtualenv path/to/venv && + path/to/venv/pip install Foo``. +- Fixed pip throwing an IndexError when it calls `scraped_rel_links`. (#366) +- pip search should set and return a useful shell status code. (#22) +- Added global ``--exists-action`` command line option to easier script file + exists conflicts, e.g. from editable requirements from VCS that have a + changed repo URL. (#351, #365) + + +1.0.2 (2011-07-16) +================== + +- Fixed docs issues. +- Reinstall a package when using the ``install -I`` option. (#295) +- Finds a Git tag pointing to same commit as origin/master. (#283) +- Use absolute path for path to docs in setup.py. (#279) +- Correctly handle exceptions on Python3. (#314) +- Correctly parse ``--editable`` lines in requirements files. (#320) + + +1.0.1 (2011-04-30) +================== + +- Start to use git-flow. +- `find_command` should not raise AttributeError. (#274) +- Respect Content-Disposition header. Thanks Bradley Ayers. (#273) +- pathext handling on Windows. (#233) +- svn+svn protocol. (#252) +- multiple CLI searches. (#44) +- Current working directory when running setup.py clean. (#266) + + +1.0 (2011-04-04) +================ + +- Added Python 3 support! Huge thanks to Vinay Sajip, Vitaly Babiy, Kelsey + Hightower, and Alex Gronholm, among others. +- Download progress only shown on a real TTY. Thanks Alex Morega. +- Fixed finding of VCS binaries to not be fooled by same-named directories. + Thanks Alex Morega. +- Fixed uninstall of packages from system Python for users of Debian/Ubuntu + python-setuptools package (workaround until fixed in Debian and Ubuntu). +- Added `get-pip.py `_ + installer. Simply download and execute it, using the Python interpreter of + your choice:: + + $ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py + $ python get-pip.py + + This may have to be run as root. + + .. note:: + + Make sure you have `distribute `_ + installed before using the installer! + + +0.8.3 +===== + +- Moved main repository to GitHub: https://github.com/pypa/pip +- Transferred primary maintenance from Ian to Jannis Leidel, Carl Meyer, + Brian Rosner +- Fixed no uninstall-on-upgrade with URL package. Thanks Oliver Tonnhofer. + (#14) +- Fixed egg name not properly resolving. Thanks Igor Sobreira. (#163) +- Fixed Non-alphabetical installation of requirements. Thanks Igor Sobreira. + (#178) +- Fixed documentation mentions --index instead of --index-url. Thanks + Kelsey Hightower (#199) +- rmtree undefined in mercurial.py. Thanks Kelsey Hightower. (#204) +- Fixed bug in Git vcs backend that would break during reinstallation. +- Fixed bug in Mercurial vcs backend related to pip freeze and branch/tag + resolution. +- Fixed bug in version string parsing related to the suffix "-dev". + + +0.8.2 +===== + +- Avoid redundant unpacking of bundles (from pwaller) +- Fixed checking out the correct tag/branch/commit when updating an editable + Git requirement. (#32, #150, #161) +- Added ability to install version control requirements without making them + editable, e.g.:: + + pip install git+https://github.com/pypa/pip/ + + (#49) +- Correctly locate build and source directory on macOS. (#175) +- Added ``git+https://`` scheme to Git VCS backend. + + +0.8.1 +===== + +- Added global --user flag as shortcut for --install-option="--user". From + Ronny Pfannschmidt. +- Added support for `PyPI mirrors `_ as + defined in `PEP 381 `_, from + Jannis Leidel. +- Fixed git revisions being ignored. Thanks John-Scott Atlakson. (#138) +- Fixed initial editable install of github package from a tag failing. Thanks + John-Scott Atlakson. (#95) +- Fixed installing if a directory in cwd has the same name as the package + you're installing. (#107) +- --install-option="--prefix=~/.local" ignored with -e. Thanks + Ronny Pfannschmidt and Wil Tan. (#39) + + +0.8 +=== + +- Track which ``build/`` directories pip creates, never remove directories + it doesn't create. From Hugo Lopes Tavares. +- pip now accepts file:// index URLs. Thanks Dave Abrahams. +- Various cleanup to make test-running more consistent and less fragile. + Thanks Dave Abrahams. +- Real Windows support (with passing tests). Thanks Dave Abrahams. +- ``pip-2.7`` etc. scripts are created (Python-version specific scripts) +- ``contrib/build-standalone`` script creates a runnable ``.zip`` form of + pip, from Jannis Leidel +- Editable git repos are updated when reinstalled +- Fix problem with ``--editable`` when multiple ``.egg-info/`` directories + are found. +- A number of VCS-related fixes for ``pip freeze``, from Hugo Lopes Tavares. +- Significant test framework changes, from Hugo Lopes Tavares. + + +0.7.2 +===== + +- Set zip_safe=False to avoid problems some people are encountering where + pip is installed as a zip file. + + +0.7.1 +===== + +- Fixed opening of logfile with no directory name. Thanks Alexandre Conrad. +- Temporary files are consistently cleaned up, especially after + installing bundles, also from Alex Conrad. +- Tests now require at least ScriptTest 1.0.3. + + +0.7 +=== + +- Fixed uninstallation on Windows +- Added ``pip search`` command. +- Tab-complete names of installed distributions for ``pip uninstall``. +- Support tab-completion when there is a global-option before the + subcommand. +- Install header files in standard (scheme-default) location when installing + outside a virtualenv. Install them to a slightly more consistent + non-standard location inside a virtualenv (since the standard location is + a non-writable symlink to the global location). +- pip now logs to a central location by default (instead of creating + ``pip-log.txt`` all over the place) and constantly overwrites the + file in question. On Unix and macOS this is ``'$HOME/.pip/pip.log'`` + and on Windows it's ``'%HOME%\\pip\\pip.log'``. You are still able to + override this location with the ``$PIP_LOG_FILE`` environment variable. + For a complete (appended) logfile use the separate ``'--log'`` command line + option. +- Fixed an issue with Git that left an editable package as a checkout of a + remote branch, even if the default behaviour would have been fine, too. +- Fixed installing from a Git tag with older versions of Git. +- Expand "~" in logfile and download cache paths. +- Speed up installing from Mercurial repositories by cloning without + updating the working copy multiple times. +- Fixed installing directly from directories (e.g. + ``pip install path/to/dir/``). +- Fixed installing editable packages with ``svn+ssh`` URLs. +- Don't print unwanted debug information when running the freeze command. +- Create log file directory automatically. Thanks Alexandre Conrad. +- Make test suite easier to run successfully. Thanks Dave Abrahams. +- Fixed "pip install ." and "pip install .."; better error for directory + without setup.py. Thanks Alexandre Conrad. +- Support Debian/Ubuntu "dist-packages" in zip command. Thanks duckx. +- Fix relative --src folder. Thanks Simon Cross. +- Handle missing VCS with an error message. Thanks Alexandre Conrad. +- Added --no-download option to install; pairs with --no-install to separate + download and installation into two steps. Thanks Simon Cross. +- Fix uninstalling from requirements file containing -f, -i, or + --extra-index-url. +- Leftover build directories are now removed. Thanks Alexandre Conrad. + + +0.6.3 +===== + +- Fixed import error on Windows with regard to the backwards compatibility + package + +0.6.2 +===== + +- Fixed uninstall when /tmp is on a different filesystem. +- Fixed uninstallation of distributions with namespace packages. + + +0.6.1 +===== + +- Added support for the ``https`` and ``http-static`` schemes to the + Mercurial and ``ftp`` scheme to the Bazaar backend. +- Fixed uninstallation of scripts installed with easy_install. +- Fixed an issue in the package finder that could result in an + infinite loop while looking for links. +- Fixed issue with ``pip bundle`` and local files (which weren't being + copied into the bundle), from Whit Morriss. + + +0.6 +=== + +- Add ``pip uninstall`` and uninstall-before upgrade (from Carl Meyer). +- Extended configurability with config files and environment variables. +- Allow packages to be upgraded, e.g., ``pip install Package==0.1`` + then ``pip install Package==0.2``. +- Allow installing/upgrading to Package==dev (fix "Source version does not + match target version" errors). +- Added command and option completion for bash and zsh. +- Extended integration with virtualenv by providing an option to + automatically use an active virtualenv and an option to warn if no active + virtualenv is found. +- Fixed a bug with pip install --download and editable packages, where + directories were being set with 0000 permissions, now defaults to 755. +- Fixed uninstallation of easy_installed console_scripts. +- Fixed uninstallation on macOS Framework layout installs +- Fixed bug preventing uninstall of editables with source outside venv. +- Creates download cache directory if not existing. + + +0.5.1 +===== + +- Fixed a couple little bugs, with git and with extensions. + + +0.5 +=== + +- Added ability to override the default log file name (``pip-log.txt``) + with the environmental variable ``$PIP_LOG_FILE``. +- Made the freeze command print installed packages to stdout instead of + writing them to a file. Use simple redirection (e.g. + ``pip freeze > stable-req.txt``) to get a file with requirements. +- Fixed problem with freezing editable packages from a Git repository. +- Added support for base URLs using ```` when parsing + HTML pages. +- Fixed installing of non-editable packages from version control systems. +- Fixed issue with Bazaar's bzr+ssh scheme. +- Added --download-dir option to the install command to retrieve package + archives. If given an editable package it will create an archive of it. +- Added ability to pass local file and directory paths to ``--find-links``, + e.g. ``--find-links=file:///path/to/my/private/archive`` +- Reduced the amount of console log messages when fetching a page to find a + distribution was problematic. The full messages can be found in pip-log.txt. +- Added ``--no-deps`` option to install ignore package dependencies +- Added ``--no-index`` option to ignore the package index (PyPI) temporarily +- Fixed installing editable packages from Git branches. +- Fixes freezing of editable packages from Mercurial repositories. +- Fixed handling read-only attributes of build files, e.g. of Subversion and + Bazaar on Windows. +- When downloading a file from a redirect, use the redirected + location's extension to guess the compression (happens specifically + when redirecting to a bitbucket.org tip.gz file). +- Editable freeze URLs now always use revision hash/id rather than tip or + branch names which could move. +- Fixed comparison of repo URLs so incidental differences such as + presence/absence of final slashes or quoted/unquoted special + characters don't trigger "ignore/switch/wipe/backup" choice. +- Fixed handling of attempt to checkout editable install to a + non-empty, non-repo directory. + + +0.4 +=== + +- Make ``-e`` work better with local hg repositories +- Construct PyPI URLs the exact way easy_install constructs URLs (you + might notice this if you use a custom index that is + slash-sensitive). +- Improvements on Windows (from `Ionel Maries Cristian + `_). +- Fixed problem with not being able to install private git repositories. +- Make ``pip zip`` zip all its arguments, not just the first. +- Fix some filename issues on Windows. +- Allow the ``-i`` and ``--extra-index-url`` options in requirements + files. +- Fix the way bundle components are unpacked and moved around, to make + bundles work. +- Adds ``-s`` option to allow the access to the global site-packages if a + virtualenv is to be created. +- Fixed support for Subversion 1.6. + + +0.3.1 +===== + +- Improved virtualenv restart and various path/cleanup problems on win32. +- Fixed a regression with installing from svn repositories (when not + using ``-e``). +- Fixes when installing editable packages that put their source in a + subdirectory (like ``src/``). +- Improve ``pip -h`` + + +0.3 +=== + +- Added support for editable packages created from Git, Mercurial and Bazaar + repositories and ability to freeze them. Refactored support for version + control systems. +- Do not use ``sys.exit()`` from inside the code, instead use a + return. This will make it easier to invoke programmatically. +- Put the install record in ``Package.egg-info/installed-files.txt`` + (previously they went in + ``site-packages/install-record-Package.txt``). +- Fix a problem with ``pip freeze`` not including ``-e svn+`` when an + svn structure is peculiar. +- Allow ``pip -E`` to work with a virtualenv that uses a different + version of Python than the parent environment. +- Fixed Win32 virtualenv (``-E``) option. +- Search the links passed in with ``-f`` for packages. +- Detect zip files, even when the file doesn't have a ``.zip`` + extension and it is served with the wrong Content-Type. +- Installing editable from existing source now works, like ``pip + install -e some/path/`` will install the package in ``some/path/``. + Most importantly, anything that package requires will also be + installed by pip. +- Add a ``--path`` option to ``pip un/zip``, so you can avoid zipping + files that are outside of where you expect. +- Add ``--simulate`` option to ``pip zip``. + + +0.2.1 +===== + +- Fixed small problem that prevented using ``pip.py`` without actually + installing pip. +- Fixed ``--upgrade``, which would download and appear to install + upgraded packages, but actually just reinstall the existing package. +- Fixed Windows problem with putting the install record in the right + place, and generating the ``pip`` script with Setuptools. +- Download links that include embedded spaces or other unsafe + characters (those characters get %-encoded). +- Fixed use of URLs in requirement files, and problems with some blank + lines. +- Turn some tar file errors into warnings. + + +0.2 +=== + +- Renamed to ``pip``, and to install you now do ``pip install + PACKAGE`` +- Added command ``pip zip PACKAGE`` and ``pip unzip PACKAGE``. This + is particularly intended for Google App Engine to manage libraries + to stay under the 1000-file limit. +- Some fixes to bundles, especially editable packages and when + creating a bundle using unnamed packages (like just an svn + repository without ``#egg=Package``). + + +0.1.4 +===== + +- Added an option ``--install-option`` to pass options to pass + arguments to ``setup.py install`` +- ``.svn/`` directories are no longer included in bundles, as these + directories are specific to a version of svn -- if you build a + bundle on a system with svn 1.5, you can't use the checkout on a + system with svn 1.4. Instead a file ``svn-checkout.txt`` is + included that notes the original location and revision, and the + command you can use to turn it back into an svn checkout. (Probably + unpacking the bundle should, maybe optionally, recreate this + information -- but that is not currently implemented, and it would + require network access.) +- Avoid ambiguities over project name case, where for instance + MyPackage and mypackage would be considered different packages. + This in particular caused problems on Macs, where ``MyPackage/`` and + ``mypackage/`` are the same directory. +- Added support for an environmental variable + ``$PIP_DOWNLOAD_CACHE`` which will cache package downloads, so + future installations won't require large downloads. Network access + is still required, but just some downloads will be avoided when + using this. + + +0.1.3 +===== + +- Always use ``svn checkout`` (not ``export``) so that + ``tag_svn_revision`` settings give the revision of the package. +- Don't update checkouts that came from ``.pybundle`` files. + + +0.1.2 +===== + +- Improve error text when there are errors fetching HTML pages when + seeking packages. +- Improve bundles: include empty directories, make them work with + editable packages. +- If you use ``-E env`` and the environment ``env/`` doesn't exist, a + new virtual environment will be created. +- Fix ``dependency_links`` for finding packages. + + +0.1.1 +===== + +- Fixed a NameError exception when running pip outside of a virtualenv + environment. +- Added HTTP proxy support (from Prabhu Ramachandran) +- Fixed use of ``hashlib.md5`` on python2.5+ (also from Prabhu Ramachandran) + + +0.1 +=== + +- Initial release diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/PKG-INFO b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/PKG-INFO new file mode 100644 index 00000000000..83fb7d199c1 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/PKG-INFO @@ -0,0 +1,90 @@ +Metadata-Version: 2.1 +Name: pip +Version: 22.0.4 +Summary: The PyPA recommended tool for installing Python packages. +Home-page: https://pip.pypa.io/ +License: MIT +Project-URL: Documentation, https://pip.pypa.io +Project-URL: Source, https://github.com/pypa/pip +Project-URL: Changelog, https://pip.pypa.io/en/stable/news/ +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Topic :: Software Development :: Build Tools +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.7 +License-File: LICENSE.txt + +pip - The Python Package Installer +================================== + +.. image:: https://img.shields.io/pypi/v/pip.svg + :target: https://pypi.org/project/pip/ + +.. image:: https://readthedocs.org/projects/pip/badge/?version=latest + :target: https://pip.pypa.io/en/latest + +pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes. + +Please take a look at our documentation for how to install and use pip: + +* `Installation`_ +* `Usage`_ + +We release updates regularly, with a new version every 3 months. Find more details in our documentation: + +* `Release notes`_ +* `Release process`_ + +In pip 20.3, we've `made a big improvement to the heart of pip`_; `learn more`_. We want your input, so `sign up for our user experience research studies`_ to help us do it right. + +**Note**: pip 21.0, in January 2021, removed Python 2 support, per pip's `Python 2 support policy`_. Please migrate to Python 3. + +If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms: + +* `Issue tracking`_ +* `Discourse channel`_ +* `User IRC`_ + +If you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms: + +* `GitHub page`_ +* `Development documentation`_ +* `Development mailing list`_ +* `Development IRC`_ + +Code of Conduct +--------------- + +Everyone interacting in the pip project's codebases, issue trackers, chat +rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. + +.. _package installer: https://packaging.python.org/guides/tool-recommendations/ +.. _Python Package Index: https://pypi.org +.. _Installation: https://pip.pypa.io/en/stable/installation/ +.. _Usage: https://pip.pypa.io/en/stable/ +.. _Release notes: https://pip.pypa.io/en/stable/news.html +.. _Release process: https://pip.pypa.io/en/latest/development/release-process/ +.. _GitHub page: https://github.com/pypa/pip +.. _Development documentation: https://pip.pypa.io/en/latest/development +.. _made a big improvement to the heart of pip: https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html +.. _learn more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020 +.. _sign up for our user experience research studies: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html +.. _Python 2 support policy: https://pip.pypa.io/en/latest/development/release-process/#python-2-support +.. _Issue tracking: https://github.com/pypa/pip/issues +.. _Discourse channel: https://discuss.python.org/c/packaging +.. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/ +.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa +.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev +.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md + + diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/README.rst b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/README.rst new file mode 100644 index 00000000000..6810315526b --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/README.rst @@ -0,0 +1,62 @@ +pip - The Python Package Installer +================================== + +.. image:: https://img.shields.io/pypi/v/pip.svg + :target: https://pypi.org/project/pip/ + +.. image:: https://readthedocs.org/projects/pip/badge/?version=latest + :target: https://pip.pypa.io/en/latest + +pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes. + +Please take a look at our documentation for how to install and use pip: + +* `Installation`_ +* `Usage`_ + +We release updates regularly, with a new version every 3 months. Find more details in our documentation: + +* `Release notes`_ +* `Release process`_ + +In pip 20.3, we've `made a big improvement to the heart of pip`_; `learn more`_. We want your input, so `sign up for our user experience research studies`_ to help us do it right. + +**Note**: pip 21.0, in January 2021, removed Python 2 support, per pip's `Python 2 support policy`_. Please migrate to Python 3. + +If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms: + +* `Issue tracking`_ +* `Discourse channel`_ +* `User IRC`_ + +If you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms: + +* `GitHub page`_ +* `Development documentation`_ +* `Development mailing list`_ +* `Development IRC`_ + +Code of Conduct +--------------- + +Everyone interacting in the pip project's codebases, issue trackers, chat +rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. + +.. _package installer: https://packaging.python.org/guides/tool-recommendations/ +.. _Python Package Index: https://pypi.org +.. _Installation: https://pip.pypa.io/en/stable/installation/ +.. _Usage: https://pip.pypa.io/en/stable/ +.. _Release notes: https://pip.pypa.io/en/stable/news.html +.. _Release process: https://pip.pypa.io/en/latest/development/release-process/ +.. _GitHub page: https://github.com/pypa/pip +.. _Development documentation: https://pip.pypa.io/en/latest/development +.. _made a big improvement to the heart of pip: https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html +.. _learn more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020 +.. _sign up for our user experience research studies: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html +.. _Python 2 support policy: https://pip.pypa.io/en/latest/development/release-process/#python-2-support +.. _Issue tracking: https://github.com/pypa/pip/issues +.. _Discourse channel: https://discuss.python.org/c/packaging +.. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/ +.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa +.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev +.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/docs/requirements.txt b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/docs/requirements.txt new file mode 100644 index 00000000000..fa3a7390c15 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/docs/requirements.txt @@ -0,0 +1,11 @@ +sphinx ~= 4.2, != 4.4.0 +towncrier +furo +myst_parser +sphinx-copybutton +sphinx-inline-tabs +sphinxcontrib-towncrier >= 0.2.0a0 + +# `docs.pipext` uses pip's internals to generate documentation. So, we install +# the current directory to make it work. +. diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/pyproject.toml b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/pyproject.toml new file mode 100644 index 00000000000..a02457eeffd --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/pyproject.toml @@ -0,0 +1,71 @@ +[build-system] +requires = ["setuptools", "wheel"] +build-backend = "setuptools.build_meta" + +[tool.towncrier] +# For finding the __version__ +package = "pip" +package_dir = "src" +# For writing into the correct file +filename = "NEWS.rst" +# For finding the news fragments +directory = "news/" + +# For rendering properly for this project +issue_format = "`#{issue} `_" +template = "tools/news/template.rst" + +# Grouping of entries, within our changelog +type = [ + { name = "Process", directory = "process", showcontent = true }, + { name = "Deprecations and Removals", directory = "removal", showcontent = true }, + { name = "Features", directory = "feature", showcontent = true }, + { name = "Bug Fixes", directory = "bugfix", showcontent = true }, + { name = "Vendored Libraries", directory = "vendor", showcontent = true }, + { name = "Improved Documentation", directory = "doc", showcontent = true }, + { name = "Trivial Changes", directory = "trivial", showcontent = false }, +] + +[tool.vendoring] +destination = "src/pip/_vendor/" +requirements = "src/pip/_vendor/vendor.txt" +namespace = "pip._vendor" + +protected-files = ["__init__.py", "README.rst", "vendor.txt"] +patches-dir = "tools/vendoring/patches" + +[tool.vendoring.transformations] +substitute = [ + # pkg_resource's vendored packages are directly vendored in pip. + { match='pkg_resources\.extern', replace="pip._vendor" }, + { match='from \.extern', replace="from pip._vendor" }, + { match='''\('pygments\.lexers\.''', replace="('pip._vendor.pygments.lexers." }, +] +drop = [ + # contains unnecessary scripts + "bin/", + # interpreter and OS specific msgpack libs + "msgpack/*.so", + # unneeded parts of setuptools + "easy_install.py", + "setuptools", + "pkg_resources/_vendor/", + "pkg_resources/extern/", + # trim vendored pygments styles and lexers + "pygments/styles/[!_]*.py", + '^pygments/lexers/(?!python|__init__|_mapping).*\.py$', + # trim rich's markdown support + "rich/markdown.py", +] + +[tool.vendoring.typing-stubs] +six = ["six.__init__", "six.moves.__init__", "six.moves.configparser"] +distro = [] + +[tool.vendoring.license.directories] +setuptools = "pkg_resources" + +[tool.vendoring.license.fallback-urls] +CacheControl = "https://raw.githubusercontent.com/ionrock/cachecontrol/v0.12.6/LICENSE.txt" +distlib = "https://bitbucket.org/pypa/distlib/raw/master/LICENSE.txt" +webencodings = "https://github.com/SimonSapin/python-webencodings/raw/master/LICENSE" diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.cfg b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.cfg new file mode 100644 index 00000000000..b0565ab8ac1 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.cfg @@ -0,0 +1,92 @@ +[isort] +profile = black +skip = + ./build, + .nox, + .tox, + .scratch, + _vendor, + data +known_third_party = + pip._vendor + +[flake8] +max-line-length = 88 +exclude = + ./build, + .nox, + .tox, + .scratch, + _vendor, + data +enable-extensions = G +extend-ignore = + G200, G202, + E203, +per-file-ignores = + noxfile.py: G + tests/*: B011 + +[mypy] +ignore_missing_imports = True +disallow_untyped_defs = True +disallow_any_generics = True +warn_unused_ignores = True + +[mypy-pip._vendor.*] +ignore_errors = True + +[mypy-pip._vendor.colorama] +follow_imports = skip + +[mypy-pip._vendor.pkg_resources] +follow_imports = skip + +[mypy-pip._vendor.progress.*] +follow_imports = skip + +[mypy-pip._vendor.requests.*] +follow_imports = skip + +[tool:pytest] +addopts = --ignore src/pip/_vendor --ignore tests/tests_cache -r aR --color=yes +xfail_strict = True +markers = + network: tests that need network + incompatible_with_sysconfig + incompatible_with_test_venv + incompatible_with_venv + no_auto_tempdir_manager + unit: unit tests + integration: integration tests + bzr: VCS: Bazaar + svn: VCS: Subversion + mercurial: VCS: Mercurial + git: VCS: git + search: tests for 'pip search' + +[coverage:run] +branch = True +omit = */_vendor/* +data_file = ${COVERAGE_OUTPUT_DIR}/.coverage +parallel = True +disable_warnings = module-not-measured + +[coverage:paths] +source0 = + src/pip/ + */site-packages/pip/ + */pip/src/pip/ + +[coverage:report] +exclude_lines = + pragma: no cover + if TYPE_CHECKING + +[metadata] +license_file = LICENSE.txt + +[egg_info] +tag_build = +tag_date = 0 + diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.py b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.py new file mode 100644 index 00000000000..3778ca5eb48 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/setup.py @@ -0,0 +1,82 @@ +import os +import sys + +from setuptools import find_packages, setup + + +def read(rel_path: str) -> str: + here = os.path.abspath(os.path.dirname(__file__)) + # intentionally *not* adding an encoding option to open, See: + # https://github.com/pypa/virtualenv/issues/201#issuecomment-3145690 + with open(os.path.join(here, rel_path)) as fp: + return fp.read() + + +def get_version(rel_path: str) -> str: + for line in read(rel_path).splitlines(): + if line.startswith("__version__"): + # __version__ = "0.9" + delim = '"' if '"' in line else "'" + return line.split(delim)[1] + raise RuntimeError("Unable to find version string.") + + +long_description = read("README.rst") + +setup( + name="pip", + version=get_version("src/pip/__init__.py"), + description="The PyPA recommended tool for installing Python packages.", + long_description=long_description, + license="MIT", + classifiers=[ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Topic :: Software Development :: Build Tools", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + ], + url="https://pip.pypa.io/", + project_urls={ + "Documentation": "https://pip.pypa.io", + "Source": "https://github.com/pypa/pip", + "Changelog": "https://pip.pypa.io/en/stable/news/", + }, + package_dir={"": "src"}, + packages=find_packages( + where="src", + exclude=["contrib", "docs", "tests*", "tasks"], + ), + package_data={ + "pip": ["py.typed"], + "pip._vendor": ["vendor.txt"], + "pip._vendor.certifi": ["*.pem"], + "pip._vendor.requests": ["*.pem"], + "pip._vendor.distlib._backport": ["sysconfig.cfg"], + "pip._vendor.distlib": [ + "t32.exe", + "t64.exe", + "t64-arm.exe", + "w32.exe", + "w64.exe", + "w64-arm.exe", + ], + }, + entry_points={ + "console_scripts": [ + "pip=pip._internal.cli.main:main", + "pip{}=pip._internal.cli.main:main".format(sys.version_info[0]), + "pip{}.{}=pip._internal.cli.main:main".format(*sys.version_info[:2]), + ], + }, + zip_safe=False, + python_requires=">=3.7", +) diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__init__.py b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__init__.py new file mode 100644 index 00000000000..3a0d263efa9 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__init__.py @@ -0,0 +1,13 @@ +from typing import List, Optional + +__version__ = "22.0.4" + + +def main(args: Optional[List[str]] = None) -> int: + """This is an internal API only meant for use by pip's own console scripts. + + For additional details, see https://github.com/pypa/pip/issues/7498. + """ + from pip._internal.utils.entrypoints import _wrapper + + return _wrapper(args) diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__main__.py b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__main__.py new file mode 100644 index 00000000000..fe34a7b7772 --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/__main__.py @@ -0,0 +1,31 @@ +import os +import sys +import warnings + +# Remove '' and current working directory from the first entry +# of sys.path, if present to avoid using current directory +# in pip commands check, freeze, install, list and show, +# when invoked as python -m pip +if sys.path[0] in ("", os.getcwd()): + sys.path.pop(0) + +# If we are running from a wheel, add the wheel to sys.path +# This allows the usage python pip-*.whl/pip install pip-*.whl +if __package__ == "": + # __file__ is pip-*.whl/pip/__main__.py + # first dirname call strips of '/__main__.py', second strips off '/pip' + # Resulting path is the name of the wheel itself + # Add that to sys.path so we can import pip + path = os.path.dirname(os.path.dirname(__file__)) + sys.path.insert(0, path) + +if __name__ == "__main__": + # Work around the error reported in #9540, pending a proper fix. + # Note: It is essential the warning filter is set *before* importing + # pip, as the deprecation happens at import time, not runtime. + warnings.filterwarnings( + "ignore", category=DeprecationWarning, module=".*packaging\\.version" + ) + from pip._internal.cli.main import main as _main + + sys.exit(_main()) diff --git a/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/py.typed b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/py.typed new file mode 100644 index 00000000000..493b53e4e7a --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/pip-22.0.4/src/pip/py.typed @@ -0,0 +1,4 @@ +pip is a command line program. While it is implemented in Python, and so is +available for import, you must not use pip's internal APIs in this way. Typing +information is provided as a convenience only and is not a guarantee. Expect +unannounced changes to the API and types in releases. diff --git a/tests/summarycode/data/summary/summary_without_holder/summary-without-holder-pypi.expected.json b/tests/summarycode/data/summary/summary_without_holder/summary-without-holder-pypi.expected.json new file mode 100644 index 00000000000..674056af20b --- /dev/null +++ b/tests/summarycode/data/summary/summary_without_holder/summary-without-holder-pypi.expected.json @@ -0,0 +1,964 @@ +{ + "dependencies": [], + "packages": [ + { + "type": "pypi", + "namespace": null, + "name": "pip", + "version": "22.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "The PyPA recommended tool for installing Python packages.\npip - The Python Package Installer\n==================================\n\n.. image:: https://img.shields.io/pypi/v/pip.svg\n :target: https://pypi.org/project/pip/\n\n.. image:: https://readthedocs.org/projects/pip/badge/?version=latest\n :target: https://pip.pypa.io/en/latest\n\npip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes.\n\nPlease take a look at our documentation for how to install and use pip:\n\n* `Installation`_\n* `Usage`_\n\nWe release updates regularly, with a new version every 3 months. Find more details in our documentation:\n\n* `Release notes`_\n* `Release process`_\n\nIn pip 20.3, we've `made a big improvement to the heart of pip`_; `learn more`_. We want your input, so `sign up for our user experience research studies`_ to help us do it right.\n\n**Note**: pip 21.0, in January 2021, removed Python 2 support, per pip's `Python 2 support policy`_. Please migrate to Python 3.\n\nIf you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms:\n\n* `Issue tracking`_\n* `Discourse channel`_\n* `User IRC`_\n\nIf you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms:\n\n* `GitHub page`_\n* `Development documentation`_\n* `Development mailing list`_\n* `Development IRC`_\n\nCode of Conduct\n---------------\n\nEveryone interacting in the pip project's codebases, issue trackers, chat\nrooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.\n\n.. _package installer: https://packaging.python.org/guides/tool-recommendations/\n.. _Python Package Index: https://pypi.org\n.. _Installation: https://pip.pypa.io/en/stable/installation/\n.. _Usage: https://pip.pypa.io/en/stable/\n.. _Release notes: https://pip.pypa.io/en/stable/news.html\n.. _Release process: https://pip.pypa.io/en/latest/development/release-process/\n.. _GitHub page: https://github.com/pypa/pip\n.. _Development documentation: https://pip.pypa.io/en/latest/development\n.. _made a big improvement to the heart of pip: https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html\n.. _learn more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020\n.. _sign up for our user experience research studies: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html\n.. _Python 2 support policy: https://pip.pypa.io/en/latest/development/release-process/#python-2-support\n.. _Issue tracking: https://github.com/pypa/pip/issues\n.. _Discourse channel: https://discuss.python.org/c/packaging\n.. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/\n.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa\n.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev\n.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md", + "release_date": null, + "parties": [], + "keywords": [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Topic :: Software Development :: Build Tools", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy" + ], + "homepage_url": "https://pip.pypa.io/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/pypa/pip", + "vcs_url": null, + "copyright": null, + "license_expression": "mit AND mit", + "declared_license": { + "license": "MIT", + "classifiers": [ + "License :: OSI Approved :: MIT License" + ] + }, + "notice_text": null, + "source_packages": [], + "extra_data": { + "Documentation": "https://pip.pypa.io", + "Changelog": "https://pip.pypa.io/en/stable/news/" + }, + "repository_homepage_url": "https://pypi.org/project/pip", + "repository_download_url": "https://pypi.org/packages/source/p/pip/pip-22.0.4.tar.gz", + "api_data_url": "https://pypi.org/pypi/pip/22.0.4/json", + "package_uid": "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "pip-22.0.4/PKG-INFO" + ], + "datasource_ids": [ + "pypi_sdist_pkginfo" + ], + "purl": "pkg:pypi/pip@22.0.4" + } + ], + "summary": { + "declared_license_expression": "mit", + "license_clarity_score": { + "score": 90, + "declared_license": true, + "identification_precision": true, + "has_license_text": true, + "declared_copyrights": false, + "conflicting_license_categories": false, + "ambiguous_compound_licensing": false + }, + "declared_holder": "", + "primary_language": "Python", + "other_license_expressions": [], + "other_holders": [], + "other_languages": [] + }, + "files": [ + { + "path": "pip-22.0.4", + "type": "directory", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/AUTHORS.txt", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/LICENSE.txt", + "type": "file", + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 20, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 93.6, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/MANIFEST.in", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/NEWS.rst", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/PKG-INFO", + "type": "file", + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 6, + "end_line": 6, + "matched_rule": { + "identifier": "mit_30.RULE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 2, + "matched_length": 2, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 13, + "end_line": 13, + "matched_rule": { + "identifier": "pypi_mit_license.RULE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit", + "mit" + ], + "percentage_of_license_text": 1.18, + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "pip", + "version": "22.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "The PyPA recommended tool for installing Python packages.\npip - The Python Package Installer\n==================================\n\n.. image:: https://img.shields.io/pypi/v/pip.svg\n :target: https://pypi.org/project/pip/\n\n.. image:: https://readthedocs.org/projects/pip/badge/?version=latest\n :target: https://pip.pypa.io/en/latest\n\npip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes.\n\nPlease take a look at our documentation for how to install and use pip:\n\n* `Installation`_\n* `Usage`_\n\nWe release updates regularly, with a new version every 3 months. Find more details in our documentation:\n\n* `Release notes`_\n* `Release process`_\n\nIn pip 20.3, we've `made a big improvement to the heart of pip`_; `learn more`_. We want your input, so `sign up for our user experience research studies`_ to help us do it right.\n\n**Note**: pip 21.0, in January 2021, removed Python 2 support, per pip's `Python 2 support policy`_. Please migrate to Python 3.\n\nIf you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms:\n\n* `Issue tracking`_\n* `Discourse channel`_\n* `User IRC`_\n\nIf you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms:\n\n* `GitHub page`_\n* `Development documentation`_\n* `Development mailing list`_\n* `Development IRC`_\n\nCode of Conduct\n---------------\n\nEveryone interacting in the pip project's codebases, issue trackers, chat\nrooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.\n\n.. _package installer: https://packaging.python.org/guides/tool-recommendations/\n.. _Python Package Index: https://pypi.org\n.. _Installation: https://pip.pypa.io/en/stable/installation/\n.. _Usage: https://pip.pypa.io/en/stable/\n.. _Release notes: https://pip.pypa.io/en/stable/news.html\n.. _Release process: https://pip.pypa.io/en/latest/development/release-process/\n.. _GitHub page: https://github.com/pypa/pip\n.. _Development documentation: https://pip.pypa.io/en/latest/development\n.. _made a big improvement to the heart of pip: https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html\n.. _learn more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020\n.. _sign up for our user experience research studies: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html\n.. _Python 2 support policy: https://pip.pypa.io/en/latest/development/release-process/#python-2-support\n.. _Issue tracking: https://github.com/pypa/pip/issues\n.. _Discourse channel: https://discuss.python.org/c/packaging\n.. _Development mailing list: https://mail.python.org/mailman3/lists/distutils-sig.python.org/\n.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa\n.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev\n.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md", + "release_date": null, + "parties": [], + "keywords": [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Topic :: Software Development :: Build Tools", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy" + ], + "homepage_url": "https://pip.pypa.io/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/pypa/pip", + "vcs_url": null, + "copyright": null, + "license_expression": "mit AND mit", + "declared_license": { + "license": "MIT", + "classifiers": [ + "License :: OSI Approved :: MIT License" + ] + }, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "Documentation": "https://pip.pypa.io", + "Changelog": "https://pip.pypa.io/en/stable/news/" + }, + "dependencies": [], + "repository_homepage_url": "https://pypi.org/project/pip", + "repository_download_url": "https://pypi.org/packages/source/p/pip/pip-22.0.4.tar.gz", + "api_data_url": "https://pypi.org/pypi/pip/22.0.4/json", + "datasource_id": "pypi_sdist_pkginfo", + "purl": "pkg:pypi/pip@22.0.4" + } + ], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/README.rst", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/docs", + "type": "directory", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/docs/requirements.txt", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "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, + "license_expression": null, + "declared_license": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:pypi/sphinx", + "extracted_requirement": "sphinx~=4.2,!=4.4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/towncrier", + "extracted_requirement": "towncrier", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/furo", + "extracted_requirement": "furo", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/myst-parser", + "extracted_requirement": "myst_parser", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/sphinx-copybutton", + "extracted_requirement": "sphinx-copybutton", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/sphinx-inline-tabs", + "extracted_requirement": "sphinx-inline-tabs", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": "pkg:pypi/sphinxcontrib-towncrier", + "extracted_requirement": "sphinxcontrib-towncrier>=0.2.0a0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": null, + "hash_options": [], + "is_constraint": false, + "is_archive": null, + "is_wheel": false, + "is_url": null, + "is_vcs_url": null, + "is_name_at_url": false, + "is_local_path": null + } + }, + { + "purl": null, + "extracted_requirement": ".", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "is_editable": false, + "link": ".", + "hash_options": [], + "is_constraint": false, + "is_archive": false, + "is_wheel": null, + "is_url": false, + "is_vcs_url": false, + "is_name_at_url": false, + "is_local_path": true + } + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "pip_requirements", + "purl": null + } + ], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/pyproject.toml", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "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, + "license_expression": null, + "declared_license": 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": "pypi_pyproject_toml", + "purl": null + } + ], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/setup.cfg", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "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, + "license_expression": null, + "declared_license": 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": "pypi_setup_cfg", + "purl": null + } + ], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/setup.py", + "type": "file", + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 31, + "end_line": 31, + "matched_rule": { + "identifier": "mit_30.RULE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 2, + "matched_length": 2, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 35, + "end_line": 35, + "matched_rule": { + "identifier": "pypi_mit_license.RULE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit", + "mit" + ], + "percentage_of_license_text": 2.37, + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "pip", + "version": "22.0.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "The PyPA recommended tool for installing Python packages.", + "release_date": null, + "parties": [], + "keywords": [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Topic :: Software Development :: Build Tools", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy" + ], + "homepage_url": "https://pip.pypa.io/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": "https://github.com/pypa/pip", + "vcs_url": null, + "copyright": null, + "license_expression": null, + "declared_license": { + "license": "MIT", + "classifiers": [ + "License :: OSI Approved :: MIT License" + ] + }, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "Documentation": "https://pip.pypa.io", + "Changelog": "https://pip.pypa.io/en/stable/news/", + "python_requires": ">=3.7" + }, + "dependencies": [], + "repository_homepage_url": "https://pypi.org/project/pip", + "repository_download_url": "https://pypi.org/packages/source/p/pip/pip-22.0.4.tar.gz", + "api_data_url": "https://pypi.org/pypi/pip/22.0.4/json", + "datasource_id": "pypi_setup_py", + "purl": "pkg:pypi/pip@22.0.4" + } + ], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/src", + "type": "directory", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/src/pip", + "type": "directory", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/src/pip/__init__.py", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/src/pip/__main__.py", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "scan_errors": [] + }, + { + "path": "pip-22.0.4/src/pip/py.typed", + "type": "file", + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "package_data": [], + "for_packages": [ + "pkg:pypi/pip@22.0.4?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/test_summarizer.py b/tests/summarycode/test_summarizer.py index 155bd8fca8a..29ef4bfb793 100644 --- a/tests/summarycode/test_summarizer.py +++ b/tests/summarycode/test_summarizer.py @@ -161,6 +161,19 @@ def test_summary_combined_holders(self): ]) check_json_scan(expected_file, result_file, remove_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + def test_summary_without_copyright_or_holders(self): + test_dir = self.get_test_loc('summary/summary_without_holder/pip-22.0.4/') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('summary/summary_without_holder/summary-without-holder-pypi.expected.json') + run_scan_click([ + '-lp', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_remove_from_tallies(self): tallies = [ { From 7a51eb2d6e082ef2d9eb69181cd28136f8ad44d5 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Thu, 22 Sep 2022 14:27:08 +0530 Subject: [PATCH 32/54] Return None instead of empty strings Signed-off-by: Ayan Sinha Mahapatra --- src/summarycode/score.py | 4 ++-- src/summarycode/summarizer.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/summarycode/score.py b/src/summarycode/score.py index 9f755dd716b..53f677b741d 100644 --- a/src/summarycode/score.py +++ b/src/summarycode/score.py @@ -452,7 +452,7 @@ def get_primary_license(declared_license_expressions): if len(single_expressions) == 1: return single_expressions[0] else: - return '' + return None # Group single expressions to joined expressions to see if single # expressions are accounted for in a joined expression @@ -474,4 +474,4 @@ def get_primary_license(declared_license_expressions): if len(single_expressions_by_joined_expressions) == 1 and not not_in_joined_expressions: return next(iter(single_expressions_by_joined_expressions)) else: - return '' + return None diff --git a/src/summarycode/summarizer.py b/src/summarycode/summarizer.py index 4ead1f5f946..ea5cf39c613 100644 --- a/src/summarycode/summarizer.py +++ b/src/summarycode/summarizer.py @@ -204,10 +204,10 @@ def get_primary_language(programming_language_tallies): programming_languages_by_count = { entry['count']: entry['value'] for entry in programming_language_tallies } - primary_language = '' + primary_language = None if programming_languages_by_count: highest_count = max(programming_languages_by_count) - primary_language = programming_languages_by_count[highest_count] or '' + primary_language = programming_languages_by_count[highest_count] or None return primary_language @@ -219,7 +219,7 @@ def get_origin_info_from_top_level_packages(top_level_packages, codebase): ``codebase``. """ if not top_level_packages: - return '', [], '' + return None, [], None license_expressions = [] programming_languages = [] @@ -250,7 +250,7 @@ def get_origin_info_from_top_level_packages(top_level_packages, codebase): relation='AND', ) - declared_license_expression = '' + declared_license_expression = None if combined_declared_license_expression: declared_license_expression = str( Licensing().parse(combined_declared_license_expression).simplify() @@ -283,7 +283,7 @@ def get_origin_info_from_top_level_packages(top_level_packages, codebase): # Programming language unique_programming_languages = unique(programming_languages) - primary_language = '' + primary_language = None if len(unique_programming_languages) == 1: primary_language = unique_programming_languages[0] From cd7ffbcca376cfce644349aadf28a04c2d63d6ca Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Fri, 23 Sep 2022 15:49:44 -0700 Subject: [PATCH 33/54] Yield package before assigning to resource Signed-off-by: Jono Yang --- src/packagedcode/about.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/packagedcode/about.py b/src/packagedcode/about.py index 0a0f197971a..52d9a9a56ad 100644 --- a/src/packagedcode/about.py +++ b/src/packagedcode/about.py @@ -118,17 +118,17 @@ def assemble(cls, package_data, resource, codebase, package_adder): package_data=package_data, datafile_path=datafile_path, ) - package_uid = package.package_uid - - # NOTE: we do not attach files to the Package level. Instead we - # update `for_package` in the file - package_adder(package_uid, resource, codebase) if not package.license_expression: package.license_expression = cls.compute_normalized_license(package) yield package + package_uid = package.package_uid + # NOTE: we do not attach files to the Package level. Instead we + # update `for_package` in the file + package_adder(package_uid, resource, codebase) + if resource.has_parent() and package_data.file_references: parent_resource = resource.parent(codebase) if parent_resource and package_data.file_references: From 498f6c3f3661f33de0b447abf8b9886d4c717d61 Mon Sep 17 00:00:00 2001 From: bwjohnson-ss <41123899+bwjohnson-ss@users.noreply.github.com> Date: Fri, 23 Sep 2022 17:21:34 -0700 Subject: [PATCH 34/54] Fixed restructuredtext bulleted list to use * It wasn't rendering right here: https://scancode-toolkit.readthedocs.io/en/stable/explanations/overview.html#how-does-scancode-detect-licenses --- docs/source/explanations/overview.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/explanations/overview.rst b/docs/source/explanations/overview.rst index 5f42cc41761..a8426dbf7cc 100644 --- a/docs/source/explanations/overview.rst +++ b/docs/source/explanations/overview.rst @@ -27,18 +27,18 @@ ScanCode-Toolkit performs the scan on a codebase in the following steps : Scan results are provided in various formats: -- a JSON file simple or pretty-printed, -- SPDX tag value or XML, RDF formats, -- CSV, -- a simple unformatted HTML file that can be opened in browser or as a spreadsheet. +* a JSON file simple or pretty-printed, +* SPDX tag value or XML, RDF formats, +* CSV, +* a simple unformatted HTML file that can be opened in browser or as a spreadsheet. For each scanned file, the result contains: -- its location in the codebase, -- the detected licenses and copyright statements, -- the start and end line numbers identifying where the license or copyright was found in the +* its location in the codebase, +* the detected licenses and copyright statements, +* the start and end line numbers identifying where the license or copyright was found in the scanned file, and -- reference information for the detected license. +* reference information for the detected license. For archive extraction, ScanCode uses a combination of Python modules, 7zip and libarchive/bsdtar to detect archive types and extract these recursively. From 33cb746ab509544e3ecf998697b6b2f355ea3292 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Fri, 23 Sep 2022 17:28:31 -0700 Subject: [PATCH 35/54] removed an extra space I added --- docs/source/explanations/overview.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/explanations/overview.rst b/docs/source/explanations/overview.rst index a8426dbf7cc..a75de1ee0ba 100644 --- a/docs/source/explanations/overview.rst +++ b/docs/source/explanations/overview.rst @@ -29,7 +29,7 @@ Scan results are provided in various formats: * a JSON file simple or pretty-printed, * SPDX tag value or XML, RDF formats, -* CSV, +* CSV, * a simple unformatted HTML file that can be opened in browser or as a spreadsheet. For each scanned file, the result contains: From e47115953f2b1366ac53f8cfa6f6bc37cda31aac Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 26 Sep 2022 20:21:19 +0200 Subject: [PATCH 36/54] build: harden about-files-ci.yml permissions Signed-off-by: Alex --- .github/workflows/about-files-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/about-files-ci.yml b/.github/workflows/about-files-ci.yml index e3a1b5b1dec..268c9565211 100644 --- a/.github/workflows/about-files-ci.yml +++ b/.github/workflows/about-files-ci.yml @@ -2,6 +2,9 @@ name: CI About Files on: [push, pull_request] +permissions: + contents: read # to fetch code (actions/checkout) + jobs: build: runs-on: ubuntu-20.04 From 74694e181a4c86221d16f5ee5e7c67b98a12b4ae Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 26 Sep 2022 20:26:47 +0200 Subject: [PATCH 37/54] build: harden scancode-release.yml permissions Signed-off-by: Alex --- .github/workflows/scancode-release.yml | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.github/workflows/scancode-release.yml b/.github/workflows/scancode-release.yml index 49e2ad788e6..a01fbc570ff 100644 --- a/.github/workflows/scancode-release.yml +++ b/.github/workflows/scancode-release.yml @@ -17,9 +17,13 @@ on: tags: - "v*.*.*" +permissions: {} jobs: build_scancode_for_pypi: + permissions: + contents: read # to fetch code (actions/checkout) + name: Build PyPI archives runs-on: ubuntu-20.04 @@ -67,6 +71,9 @@ jobs: build_scancode_for_release_linux: + permissions: + contents: read # to fetch code (actions/checkout) + name: Build Release for linux runs-on: ubuntu-20.04 needs: @@ -106,6 +113,9 @@ jobs: build_scancode_for_release_macos: + permissions: + contents: read # to fetch code (actions/checkout) + name: Build Release for mac runs-on: ubuntu-20.04 needs: @@ -145,6 +155,9 @@ jobs: build_scancode_for_release_windows: + permissions: + contents: read # to fetch code (actions/checkout) + name: Build Release for windows runs-on: ubuntu-20.04 needs: @@ -183,6 +196,9 @@ jobs: build_scancode_for_release_source: + permissions: + contents: read # to fetch code (actions/checkout) + name: Build source runs-on: ubuntu-20.04 needs: @@ -221,6 +237,9 @@ jobs: smoke_test_install_and_run_pypi_dists_posix: + permissions: + contents: read # to fetch code (actions/checkout) + name: Test POSIX PyPI wheels needs: - build_scancode_for_pypi @@ -267,6 +286,9 @@ jobs: smoke_test_install_and_run_pypi_dists_windows: + permissions: + contents: read # to fetch code (actions/checkout) + name: Test Windows PyPI wheels needs: - build_scancode_for_pypi @@ -312,6 +334,9 @@ jobs: smoke_test_install_and_run_app_archives_on_linux: + permissions: + contents: read # to fetch code (actions/checkout) + name: Test app on ${{ matrix.os }} needs: - build_scancode_for_release_linux @@ -350,6 +375,9 @@ jobs: smoke_test_install_and_run_app_archives_on_macos: + permissions: + contents: read # to fetch code (actions/checkout) + name: Test app on ${{ matrix.os }} needs: - build_scancode_for_release_macos @@ -388,6 +416,9 @@ jobs: smoke_test_install_and_run_app_archives_on_windows: + permissions: + contents: read # to fetch code (actions/checkout) + name: Test app on ${{ matrix.os }} needs: - build_scancode_for_release_windows @@ -422,6 +453,9 @@ jobs: for %%F in (dist/*.zip) do python etc/release/scancode_release_tests.py dist/%%F publish_to_gh_release: + permissions: + contents: write # to create GitHub release (softprops/action-gh-release) + name: Publish to GH Release needs: - smoke_test_install_and_run_app_archives_on_linux From dae4189914ca740470092162fdfde45243b26a6e Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 26 Sep 2022 20:27:12 +0200 Subject: [PATCH 38/54] build: harden docs-ci.yml permissions Signed-off-by: Alex --- .github/workflows/docs-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/docs-ci.yml b/.github/workflows/docs-ci.yml index 18a44aa0846..b8b9b869204 100644 --- a/.github/workflows/docs-ci.yml +++ b/.github/workflows/docs-ci.yml @@ -2,6 +2,9 @@ name: CI Documentation on: [push, pull_request] +permissions: + contents: read # to fetch code (actions/checkout) + jobs: build: runs-on: ubuntu-20.04 From d6d511711dae926dbbae60b153c8e7112d7a222e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 27 Sep 2022 16:40:39 +0200 Subject: [PATCH 39/54] Update the ROADMAP documentation This is still a work in progress Signed-off-by: Philippe Ombredanne --- ROADMAP.rst | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ROADMAP.rst b/ROADMAP.rst index 789649812dc..7e9b44bdabe 100644 --- a/ROADMAP.rst +++ b/ROADMAP.rst @@ -18,19 +18,27 @@ even if it is correct and it is technically correct. The goal of this improvement is to: - combine multiple related license matches in a single license detection + - in a license detection, expose a primary license expression in addition to the complete, full license expression. + - make the logic of selection of the primary license visible, at the minimum with a log of combination and primary license selection operations This is for SCTK first. +Status: This has been completed in SCTK and also included in SCIO. We use +an updated --summary option and a new license clarity score for this. +Some work is still in progress as part of 3.) "detections" + 2. Package files. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reporting the set of package files for each package instance is important because -it allows for natural grouping of these in one unit. +it allows for natural grouping of these in one unit. + +This has been completed in SCTK and also included in SCIO. 3. Go to two-level reporting of detections to provide more effective detections From 6f4cb09853d3e6779313abf063cba405cc73c78d Mon Sep 17 00:00:00 2001 From: Jono Yang Date: Tue, 27 Sep 2022 18:39:29 -0700 Subject: [PATCH 40/54] Update assemble_from_many * Yield packages before resources and assign resources to packages before yielding resources Signed-off-by: Jono Yang --- src/packagedcode/alpine.py | 5 +++-- src/packagedcode/models.py | 15 ++++++++++++--- src/packagedcode/rpm.py | 5 +++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/packagedcode/alpine.py b/src/packagedcode/alpine.py index b7238556a18..6b139586401 100644 --- a/src/packagedcode/alpine.py +++ b/src/packagedcode/alpine.py @@ -97,7 +97,6 @@ def assemble(cls, package_data, resource, codebase, package_adder): # path is found and processed: remove it, so we can check if we # found all of them del file_references_by_path[res.path] - package_adder(package_uid, res, codebase) resources.append(res) # if we have left over file references, add these to extra data @@ -106,7 +105,9 @@ def assemble(cls, package_data, resource, codebase, package_adder): package.extra_data['missing_file_references'] = missing yield package - yield from resources + for res in resources: + package_adder(package_uid, res, codebase) + yield res dependent_packages = package_data.dependencies if dependent_packages: diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index 4980f9b1b4e..a3da606aaa2 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -808,7 +808,11 @@ def add_to_package(package_uid, resource, codebase): Append `package_uid` to `resource.for_packages`, if the attribute exists and `package_uid` is not already in `resource.for_packages`. """ - if hasattr(resource, 'for_packages') and isinstance(resource.for_packages, list): + if ( + hasattr(resource, 'for_packages') + and isinstance(resource.for_packages, list) + and package_uid + ): if package_uid in resource.for_packages: return resource.for_packages.append(package_uid) @@ -1113,16 +1117,21 @@ def assemble_from_many(cls, pkgdata_resources, codebase, package_adder=add_to_pa package.license_expression = cls.compute_normalized_license(package) yield package yield from dependencies - yield from resources - # Associate Package to Resources once they have been yielded + # Associate Package to Resources and yield them + for resource in resources: + package_adder(package_uid, resource, codebase) + yield resource + for package_uid, resource in resources_from_package: package_adder(package_uid, resource, codebase) + yield resource # the whole parent subtree of the base_resource is for this package if package_uid: for res in base_resource.walk(codebase): package_adder(package_uid, res, codebase) + yield res @classmethod def assemble_from_many_datafiles( diff --git a/src/packagedcode/rpm.py b/src/packagedcode/rpm.py index 85aced5f0eb..392a9c521de 100644 --- a/src/packagedcode/rpm.py +++ b/src/packagedcode/rpm.py @@ -201,7 +201,6 @@ def assemble(cls, package_data, resource, codebase, package_adder): if package_uid: # path is found and processed: remove it, so we can check if we # found all of them - package_adder(package_uid, res, codebase) resources.append(res) # if we have left over file references, add these to extra data @@ -224,7 +223,9 @@ def assemble(cls, package_data, resource, codebase, package_adder): dep.namespace = namespace yield dep - yield from resources + for resource in resources: + package_adder(package_uid, resource, codebase) + yield resource # TODO: add dependencies!!! From 89ed9cbe763e17d8a9597ea005900b5d3b72d881 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 28 Sep 2022 11:30:08 +0200 Subject: [PATCH 41/54] Add new and improved license rules Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 4 +- .../data/rules/afl-2.1_or_gpl-2.0-plus_1.RULE | 9 +++ .../data/rules/afl-2.1_or_gpl-2.0-plus_1.yml | 2 + src/licensedcode/data/rules/agpl-3.0_387.RULE | 3 + src/licensedcode/data/rules/agpl-3.0_387.yml | 3 + src/licensedcode/data/rules/agpl-3.0_388.RULE | 1 + src/licensedcode/data/rules/agpl-3.0_388.yml | 3 + ...with_agpl-generic-additional-terms_27.RULE | 55 +++++++++++++++++++ ..._with_agpl-generic-additional-terms_27.yml | 5 ++ ...with_agpl-generic-additional-terms_28.RULE | 16 ++++++ ..._with_agpl-generic-additional-terms_28.yml | 6 ++ ...with_agpl-generic-additional-terms_29.RULE | 16 ++++++ ..._with_agpl-generic-additional-terms_29.yml | 8 +++ ...with_agpl-generic-additional-terms_30.RULE | 12 ++++ ..._with_agpl-generic-additional-terms_30.yml | 8 +++ ...with_agpl-generic-additional-terms_31.RULE | 12 ++++ ..._with_agpl-generic-additional-terms_31.yml | 8 +++ ...with_agpl-generic-additional-terms_32.RULE | 9 +++ ..._with_agpl-generic-additional-terms_32.yml | 8 +++ ...with_agpl-generic-additional-terms_33.RULE | 2 + ..._with_agpl-generic-additional-terms_33.yml | 6 ++ ...with_agpl-generic-additional-terms_34.RULE | 2 + ..._with_agpl-generic-additional-terms_34.yml | 6 ++ .../data/rules/apache-2.0_1144.RULE | 4 ++ .../data/rules/apache-2.0_1144.yml | 2 + .../data/rules/apache-2.0_1145.RULE | 4 ++ .../data/rules/apache-2.0_1145.yml | 2 + .../data/rules/apache-2.0_1146.RULE | 1 + .../data/rules/apache-2.0_1146.yml | 3 + .../data/rules/bsd-simplified_316.RULE | 1 + .../data/rules/bsd-simplified_316.yml | 3 + .../data/rules/bsd-simplified_317.RULE | 1 + .../data/rules/bsd-simplified_317.yml | 3 + .../data/rules/false-positive_204.RULE | 1 + .../data/rules/false-positive_204.yml | 2 + .../data/rules/false-positive_213.RULE | 1 + .../data/rules/false-positive_213.yml | 2 + .../data/rules/false-positive_215.RULE | 1 + .../data/rules/false-positive_215.yml | 2 + .../data/rules/false-positive_217.RULE | 1 + .../data/rules/false-positive_217.yml | 2 + .../data/rules/false-positive_221.RULE | 1 + .../data/rules/false-positive_221.yml | 2 + .../data/rules/false-positive_240.RULE | 1 + .../data/rules/false-positive_240.yml | 2 + .../data/rules/false-positive_243.RULE | 1 + .../data/rules/false-positive_243.yml | 2 + .../data/rules/false-positive_248.RULE | 1 + .../data/rules/false-positive_248.yml | 2 + .../data/rules/false-positive_249.RULE | 1 + .../data/rules/false-positive_249.yml | 2 + .../data/rules/false-positive_253.RULE | 1 + .../data/rules/false-positive_253.yml | 2 + .../data/rules/false-positive_257.RULE | 1 + .../data/rules/false-positive_257.yml | 2 + .../data/rules/gpl-1.0-plus_566.RULE | 2 + .../data/rules/gpl-1.0-plus_566.yml | 5 ++ .../data/rules/gpl-1.0-plus_567.RULE | 1 + .../data/rules/gpl-1.0-plus_567.yml | 3 + .../data/rules/gpl-2.0-plus_1070.RULE | 19 +++++++ .../data/rules/gpl-2.0-plus_1070.yml | 4 ++ .../data/rules/gpl-2.0-plus_1071.RULE | 1 + .../data/rules/gpl-2.0-plus_1071.yml | 3 + .../data/rules/gpl-2.0-plus_1072.RULE | 1 + .../data/rules/gpl-2.0-plus_1072.yml | 3 + .../data/rules/gpl-2.0-plus_1073.RULE | 13 +++++ .../data/rules/gpl-2.0-plus_1073.yml | 2 + .../data/rules/gpl-2.0-plus_1074.RULE | 16 ++++++ .../data/rules/gpl-2.0-plus_1074.yml | 3 + .../data/rules/gpl-2.0-plus_1075.RULE | 14 +++++ .../data/rules/gpl-2.0-plus_1075.yml | 3 + .../gpl-2.0-plus_and_lgpl-2.0-plus_2.RULE | 16 ++++++ .../gpl-2.0-plus_and_lgpl-2.0-plus_2.yml | 3 + src/licensedcode/data/rules/gpl-2.0_1387.RULE | 13 +++++ src/licensedcode/data/rules/gpl-2.0_1387.yml | 3 + .../data/rules/gpl-3.0-plus_556.RULE | 12 ++++ .../data/rules/gpl-3.0-plus_556.yml | 4 ++ .../data/rules/gpl-3.0-plus_557.RULE | 1 + .../data/rules/gpl-3.0-plus_557.yml | 3 + .../data/rules/gpl-3.0-plus_558.RULE | 2 + .../data/rules/gpl-3.0-plus_558.yml | 5 ++ .../data/rules/gpl-3.0-plus_559.RULE | 15 +++++ .../data/rules/gpl-3.0-plus_559.yml | 5 ++ .../data/rules/gpl-3.0-plus_560.RULE | 13 +++++ .../data/rules/gpl-3.0-plus_560.yml | 5 ++ src/licensedcode/data/rules/gpl-3.0_529.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_529.yml | 2 + src/licensedcode/data/rules/gpl-3.0_530.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_530.yml | 2 + src/licensedcode/data/rules/gpl-3.0_531.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_531.yml | 3 + src/licensedcode/data/rules/gpl-3.0_532.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_532.yml | 3 + src/licensedcode/data/rules/gpl-3.0_533.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_533.yml | 2 + src/licensedcode/data/rules/gpl-3.0_534.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_534.yml | 2 + src/licensedcode/data/rules/gpl-3.0_535.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_535.yml | 3 + src/licensedcode/data/rules/gpl-3.0_536.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_536.yml | 3 + src/licensedcode/data/rules/gpl-3.0_537.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_537.yml | 3 + src/licensedcode/data/rules/gpl-3.0_538.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_538.yml | 3 + src/licensedcode/data/rules/gpl-3.0_539.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_539.yml | 3 + src/licensedcode/data/rules/gpl-3.0_540.RULE | 3 + src/licensedcode/data/rules/gpl-3.0_540.yml | 6 ++ src/licensedcode/data/rules/gpl-3.0_541.RULE | 2 + src/licensedcode/data/rules/gpl-3.0_541.yml | 6 ++ src/licensedcode/data/rules/gpl-3.0_542.RULE | 3 + src/licensedcode/data/rules/gpl-3.0_542.yml | 4 ++ src/licensedcode/data/rules/gpl-3.0_543.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_543.yml | 4 ++ src/licensedcode/data/rules/gpl-3.0_544.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_544.yml | 5 ++ src/licensedcode/data/rules/gpl-3.0_545.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_545.yml | 5 ++ src/licensedcode/data/rules/gpl-3.0_546.RULE | 1 + src/licensedcode/data/rules/gpl-3.0_546.yml | 5 ++ src/licensedcode/data/rules/json_3.RULE | 4 +- .../data/rules/lgpl-2.0-plus_424.yml | 3 + .../data/rules/lgpl-2.0-plus_555.RULE | 2 + .../data/rules/lgpl-2.0-plus_555.yml | 5 ++ .../data/rules/lgpl-2.0-plus_556.RULE | 1 + .../data/rules/lgpl-2.0-plus_556.yml | 3 + .../data/rules/lgpl-2.1-plus_22.RULE | 6 +- .../data/rules/lgpl-2.1-plus_447.RULE | 13 +++++ .../data/rules/lgpl-2.1-plus_447.yml | 2 + .../data/rules/lgpl-2.1-plus_448.RULE | 14 +++++ .../data/rules/lgpl-2.1-plus_448.yml | 3 + src/licensedcode/data/rules/lgpl-2.1_420.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_420.yml | 2 + src/licensedcode/data/rules/lgpl-2.1_421.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_421.yml | 2 + src/licensedcode/data/rules/lgpl-2.1_422.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_422.yml | 2 + src/licensedcode/data/rules/lgpl-2.1_423.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_423.yml | 2 + src/licensedcode/data/rules/lgpl-2.1_424.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_424.yml | 3 + src/licensedcode/data/rules/lgpl-2.1_425.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_425.yml | 3 + src/licensedcode/data/rules/lgpl-2.1_426.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_426.yml | 3 + src/licensedcode/data/rules/lgpl-2.1_427.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_427.yml | 3 + src/licensedcode/data/rules/lgpl-2.1_428.RULE | 1 + src/licensedcode/data/rules/lgpl-2.1_428.yml | 3 + .../data/rules/lgpl-3.0-plus_281.RULE | 15 +++++ .../data/rules/lgpl-3.0-plus_281.yml | 5 ++ .../data/rules/lgpl-3.0-plus_282.RULE | 13 +++++ .../data/rules/lgpl-3.0-plus_282.yml | 5 ++ src/licensedcode/data/rules/lgpl-3.0_303.RULE | 10 ++++ src/licensedcode/data/rules/lgpl-3.0_303.yml | 7 +++ src/licensedcode/data/rules/lgpl-3.0_304.RULE | 5 ++ src/licensedcode/data/rules/lgpl-3.0_304.yml | 7 +++ src/licensedcode/data/rules/lgpl-3.0_305.RULE | 2 + src/licensedcode/data/rules/lgpl-3.0_305.yml | 8 +++ src/licensedcode/data/rules/lgpl-3.0_306.RULE | 1 + src/licensedcode/data/rules/lgpl-3.0_306.yml | 5 ++ src/licensedcode/data/rules/lgpl-3.0_307.RULE | 1 + src/licensedcode/data/rules/lgpl-3.0_307.yml | 5 ++ .../data/rules/other-permissive_353.RULE | 7 +++ .../data/rules/other-permissive_353.yml | 3 + .../data/rules/other-permissive_354.RULE | 17 ++++++ .../data/rules/other-permissive_354.yml | 3 + .../data/rules/proprietary-license_782.RULE | 8 +++ .../data/rules/proprietary-license_782.yml | 2 + .../data/rules/proprietary-license_783.RULE | 17 ++++++ .../data/rules/proprietary-license_783.yml | 2 + .../data/rules/proprietary-license_784.RULE | 12 ++++ .../data/rules/proprietary-license_784.yml | 2 + .../data/rules/proprietary-license_785.RULE | 1 + .../data/rules/proprietary-license_785.yml | 4 ++ .../data/rules/proprietary-license_786.RULE | 5 ++ .../data/rules/proprietary-license_786.yml | 3 + .../data/rules/proprietary-license_787.RULE | 3 + .../data/rules/proprietary-license_787.yml | 3 + .../data/rules/public-domain_458.RULE | 1 + .../data/rules/public-domain_458.yml | 3 + .../data/rules/public-domain_459.RULE | 6 ++ .../data/rules/public-domain_459.yml | 4 ++ .../data/rules/public-domain_460.RULE | 1 + .../data/rules/public-domain_460.yml | 4 ++ .../rules/smsc-non-commercial-2012_1.RULE | 12 ++++ .../data/rules/smsc-non-commercial-2012_1.yml | 2 + 188 files changed, 836 insertions(+), 7 deletions(-) create mode 100644 src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.RULE create mode 100644 src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_387.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_387.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_388.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_388.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.yml create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.RULE create mode 100644 src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.yml create mode 100644 src/licensedcode/data/rules/apache-2.0_1144.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_1144.yml create mode 100644 src/licensedcode/data/rules/apache-2.0_1145.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_1145.yml create mode 100644 src/licensedcode/data/rules/apache-2.0_1146.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_1146.yml create mode 100644 src/licensedcode/data/rules/bsd-simplified_316.RULE create mode 100644 src/licensedcode/data/rules/bsd-simplified_316.yml create mode 100644 src/licensedcode/data/rules/bsd-simplified_317.RULE create mode 100644 src/licensedcode/data/rules/bsd-simplified_317.yml create mode 100644 src/licensedcode/data/rules/false-positive_204.RULE create mode 100644 src/licensedcode/data/rules/false-positive_204.yml create mode 100644 src/licensedcode/data/rules/false-positive_213.RULE create mode 100644 src/licensedcode/data/rules/false-positive_213.yml create mode 100644 src/licensedcode/data/rules/false-positive_215.RULE create mode 100644 src/licensedcode/data/rules/false-positive_215.yml create mode 100644 src/licensedcode/data/rules/false-positive_217.RULE create mode 100644 src/licensedcode/data/rules/false-positive_217.yml create mode 100644 src/licensedcode/data/rules/false-positive_221.RULE create mode 100644 src/licensedcode/data/rules/false-positive_221.yml create mode 100644 src/licensedcode/data/rules/false-positive_240.RULE create mode 100644 src/licensedcode/data/rules/false-positive_240.yml create mode 100644 src/licensedcode/data/rules/false-positive_243.RULE create mode 100644 src/licensedcode/data/rules/false-positive_243.yml create mode 100644 src/licensedcode/data/rules/false-positive_248.RULE create mode 100644 src/licensedcode/data/rules/false-positive_248.yml create mode 100644 src/licensedcode/data/rules/false-positive_249.RULE create mode 100644 src/licensedcode/data/rules/false-positive_249.yml create mode 100644 src/licensedcode/data/rules/false-positive_253.RULE create mode 100644 src/licensedcode/data/rules/false-positive_253.yml create mode 100644 src/licensedcode/data/rules/false-positive_257.RULE create mode 100644 src/licensedcode/data/rules/false-positive_257.yml create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_566.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_566.yml create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_567.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_567.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1070.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1070.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1071.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1071.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1072.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1072.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1073.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1073.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1074.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1074.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1075.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1075.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0_1387.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0_1387.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_556.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_556.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_557.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_557.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_558.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_558.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_559.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_559.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_560.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0-plus_560.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_529.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_529.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_530.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_530.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_531.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_531.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_532.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_532.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_533.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_533.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_534.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_534.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_535.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_535.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_536.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_536.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_537.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_537.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_538.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_538.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_539.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_539.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_540.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_540.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_541.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_541.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_542.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_542.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_543.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_543.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_544.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_544.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_545.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_545.yml create mode 100644 src/licensedcode/data/rules/gpl-3.0_546.RULE create mode 100644 src/licensedcode/data/rules/gpl-3.0_546.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.0-plus_555.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.0-plus_555.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.0-plus_556.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.0-plus_556.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_447.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_447.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_448.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_448.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_420.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_420.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_421.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_421.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_422.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_422.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_423.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_423.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_424.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_424.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_425.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_425.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_426.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_426.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_427.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_427.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_428.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_428.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0-plus_281.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0-plus_281.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0-plus_282.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0-plus_282.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0_303.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0_303.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0_304.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0_304.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0_305.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0_305.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0_306.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0_306.yml create mode 100644 src/licensedcode/data/rules/lgpl-3.0_307.RULE create mode 100644 src/licensedcode/data/rules/lgpl-3.0_307.yml create mode 100644 src/licensedcode/data/rules/other-permissive_353.RULE create mode 100644 src/licensedcode/data/rules/other-permissive_353.yml create mode 100644 src/licensedcode/data/rules/other-permissive_354.RULE create mode 100644 src/licensedcode/data/rules/other-permissive_354.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_782.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_782.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_783.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_783.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_784.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_784.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_785.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_785.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_786.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_786.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_787.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_787.yml create mode 100644 src/licensedcode/data/rules/public-domain_458.RULE create mode 100644 src/licensedcode/data/rules/public-domain_458.yml create mode 100644 src/licensedcode/data/rules/public-domain_459.RULE create mode 100644 src/licensedcode/data/rules/public-domain_459.yml create mode 100644 src/licensedcode/data/rules/public-domain_460.RULE create mode 100644 src/licensedcode/data/rules/public-domain_460.yml create mode 100644 src/licensedcode/data/rules/smsc-non-commercial-2012_1.RULE create mode 100644 src/licensedcode/data/rules/smsc-non-commercial-2012_1.yml diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2d5d95c40c3..84a519e54fa 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -55,14 +55,14 @@ License detection: as an option. -v31.2.0 - 2022-09-02 +v31.2.0 - 2022-09-29 ---------------------------------- This is a minor release with small bug fixes and minor feature updates. - Update SPDX license list to 3.18 - Improve how we discard license matches that are "gibberish" -- And new and improve existing license and license rules +- And new and improve existing license and license detection rules v31.1.1 - 2022-09-02 diff --git a/src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.RULE b/src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.RULE new file mode 100644 index 00000000000..97fe2ccff68 --- /dev/null +++ b/src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.RULE @@ -0,0 +1,9 @@ +D-Bus is licensed to you under your choice of the Academic Free +License version 2.1, or the GNU General Public License version 2 +(or, at your option any later version). + +Both licenses are included here. Some of the standalone binaries are +under the GPL only; in particular, but not limited to, +tools/dbus-cleanup-sockets.c and test/decode-gcov.c. Each source code +file is marked with the proper copyright information - if you find a +file that isn't marked please bring it to our attention. \ No newline at end of file diff --git a/src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.yml b/src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.yml new file mode 100644 index 00000000000..f9be7d64dfa --- /dev/null +++ b/src/licensedcode/data/rules/afl-2.1_or_gpl-2.0-plus_1.yml @@ -0,0 +1,2 @@ +license_expression: afl-2.1 OR gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/agpl-3.0_387.RULE b/src/licensedcode/data/rules/agpl-3.0_387.RULE new file mode 100644 index 00000000000..a91c8117cef --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_387.RULE @@ -0,0 +1,3 @@ +License + +GNU Affero General Public License, version 3 (AGPL-3.0) \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_387.yml b/src/licensedcode/data/rules/agpl-3.0_387.yml new file mode 100644 index 00000000000..cd076255f67 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_387.yml @@ -0,0 +1,3 @@ +license_expression: agpl-3.0 +is_license_tag: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/agpl-3.0_388.RULE b/src/licensedcode/data/rules/agpl-3.0_388.RULE new file mode 100644 index 00000000000..aa3ae063dff --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_388.RULE @@ -0,0 +1 @@ +GNU Affero General Public License, version 3 (AGPL-3.0) \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_388.yml b/src/licensedcode/data/rules/agpl-3.0_388.yml new file mode 100644 index 00000000000..b4bc93464d9 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_388.yml @@ -0,0 +1,3 @@ +license_expression: agpl-3.0 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.RULE new file mode 100644 index 00000000000..f859c5dcbbe --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.RULE @@ -0,0 +1,55 @@ +License Exception for Development of plug-ins for translate5 - Version 1.1, March 30th, 2017 + +==================== +Attention +==================== +This Exception does not grant usage or distribution of translate5 or any translate5 component under a license other than the AGPL and cannot be applied to end-user applications. + +==================== +Terms and Conditions +==================== +===================== +Definitions +===================== +Terms used, but not defined, herein shall have the meaning provided in the AGPL. +“Code” means source code for translate5 or translate5 plug-in*. +“Modification” means a visual change or enhancement made to the code or a part of it by means of modifying the functionality or visual appearance of translate5. + +*“plug-in” means code which uses the translate5 plug-in mechanisms as documented for translate5 at confluence.translate5.net. + +===================== +Additional Grants +===================== +As a special exception to the terms and conditions of version 3.0 of the AGPL: + +You are free to distribute or use a plug-in licensed under GNU GENERAL PUBLIC LICENSE Version 3, as long as: + +- Your plug-in does not contain any code or modified code of translate5. + +- You do not distribute translate5, as a whole or in part, with your plug-in. You have to include instructions for developers using your plug-in explaining how to obtain translate5. + +- You include PROMINENT notice in EVERY location you display the license information for your plug-in that it uses translate5, that translate5 is distributed under the terms of the AGPL v3 and you must include a link to http://www.translate5.net/license.txt + +- Your plug-in can reasonably be considered to be adding to or modifying functionality of translate5 and does not constitute an independent and separate application in itself. + +For translate5 plug-in source code released under GNU GENERAL PUBLIC LICENSE Version 3 the AGPL license states in chapter 13: + +***** quote from AGPLv3 chapter 13 ***** + Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. + + Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. +***** end of quote from AGPLv3 chapter 13 ***** + +As an exception to chapter 13 of AGPLv3 you are free to use a translate5 plug-in licensed under GNU GENERAL PUBLIC LICENSE Version 3 (GPLv3) with translate5, even if you do NOT offer the users interacting with it or with translate5 remotely through a computer network an opportunity to receive the Corresponding Source of your version of the plug-in. For translate5 itself and all plug-ins that are licensed under AGPLv3 you still have to follow all obligations of AGPLv3. + +===================== +Applicability +===================== +This exception applies to translate5 1.0 or later released under the AGPL that contains a conspicuous notice saying that plug-ins built for translate5 by using the translate5 plug-in mechanisms may be distributed under the terms of this exception and that translate5 is subject to the terms of the AGPL v3. + +This exception can in no way be considered to grant rights to use or distribute translate5 under any license other than the AGPL v3. + +===================== +Termination +===================== +If you fail to comply with any of the terms in this exception then all rights granted to you herein are void and your rights immediately revert back to those granted in the AGPL v3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.yml new file mode 100644 index 00000000000..796e398af23 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_27.yml @@ -0,0 +1,5 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +notes: Seen in https://raw.githubusercontent.com/translate5/translate5/develop/plugin-exception.txt +ignorable_urls: + - http://www.translate5.net/license.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.RULE new file mode 100644 index 00000000000..a2ebe77ee14 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.RULE @@ -0,0 +1,16 @@ +Open Source License +This version of translate5 is licensed under the terms of the Open Source GNU AFFERO GENERAL PUBLIC LICENSE version 3. + +A copy of AGPL can be found in the same folder as this document and at +http://www.gnu.org/licenses/agpl.html + +There is a plugin exception available for use with this release for +translate5 plug-ins that are distributed under GNU GENERAL PUBLIC LICENSE version 3. + +* License Exception for Development of Plugins for translate5 + + http://www.translate5.net/plugin-exception.txt or as plugin-exception.txt in the same + folder as this document + + +This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF THIRD-PARTY INTELLECTUAL PROPERTY RIGHTS. See the GNU Affero General Public License for more details. \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.yml new file mode 100644 index 00000000000..429de101b44 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_28.yml @@ -0,0 +1,6 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +notes: See in https://github.com/translate5/translate5/blob/develop/license.txt +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.RULE new file mode 100644 index 00000000000..4ebd8a3ff84 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.RULE @@ -0,0 +1,16 @@ +START LICENSE AND COPYRIGHT + + This file may be used under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE version 3 + as published by the Free Software Foundation and appearing in the file agpl3-license.txt + included in the packaging of this file. Please review the following information + to ensure the GNU AFFERO GENERAL PUBLIC LICENSE version 3 requirements will be met: + http://www.gnu.org/licenses/agpl.html + + There is a plugin exception available for use with this release of translate5 for + translate5: Please see http://www.translate5.net/plugin-exception.txt or + plugin-exception.txt in the root folder of translate5. + + @license GNU AFFERO GENERAL PUBLIC LICENSE version 3 with plugin-execption + http://www.gnu.org/licenses/agpl.html http://www.translate5.net/plugin-exception.txt + + END LICENSE AND COPYRIGHT \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.yml new file mode 100644 index 00000000000..89a2bac88c2 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_29.yml @@ -0,0 +1,8 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +referenced_filenames: + - agpl3-license.txt +notes: Seen in https://github.com/translate5/translate5/blob/develop/Translate5/maintenance-cli.php +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.RULE new file mode 100644 index 00000000000..d0b1c23d367 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.RULE @@ -0,0 +1,12 @@ +This file may be used under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE version 3 + as published by the Free Software Foundation and appearing in the file agpl3-license.txt + included in the packaging of this file. Please review the following information + to ensure the GNU AFFERO GENERAL PUBLIC LICENSE version 3 requirements will be met: + http://www.gnu.org/licenses/agpl.html + + There is a plugin exception available for use with this release of translate5 for + translate5: Please see http://www.translate5.net/plugin-exception.txt or + plugin-exception.txt in the root folder of translate5. + + @license GNU AFFERO GENERAL PUBLIC LICENSE version 3 with plugin-execption + http://www.gnu.org/licenses/agpl.html http://www.translate5.net/plugin-exception.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.yml new file mode 100644 index 00000000000..89a2bac88c2 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_30.yml @@ -0,0 +1,8 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +referenced_filenames: + - agpl3-license.txt +notes: Seen in https://github.com/translate5/translate5/blob/develop/Translate5/maintenance-cli.php +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.RULE new file mode 100644 index 00000000000..6ae06cbc437 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.RULE @@ -0,0 +1,12 @@ +This file may be used under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE version 3 + as published by the Free Software Foundation and appearing in the file agpl3-license.txt + included in the packaging of this file. Please review the following information + to ensure the GNU AFFERO GENERAL PUBLIC LICENSE version 3 requirements will be met: + http://www.gnu.org/licenses/agpl.html + + There is a plugin exception available for use with this release of translate5 for + translate5: Please see http://www.translate5.net/plugin-exception.txt or + plugin-exception.txt in the root folder of translate5. + + @license GNU AFFERO GENERAL PUBLIC LICENSE version 3 with plugin-exception + http://www.gnu.org/licenses/agpl.html http://www.translate5.net/plugin-exception.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.yml new file mode 100644 index 00000000000..89a2bac88c2 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_31.yml @@ -0,0 +1,8 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +referenced_filenames: + - agpl3-license.txt +notes: Seen in https://github.com/translate5/translate5/blob/develop/Translate5/maintenance-cli.php +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.RULE new file mode 100644 index 00000000000..63e7c459977 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.RULE @@ -0,0 +1,9 @@ +This file may be used under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE version 3 + as published by the Free Software Foundation and appearing in the file agpl3-license.txt + included in the packaging of this file. Please review the following information + to ensure the GNU AFFERO GENERAL PUBLIC LICENSE version 3 requirements will be met: + http://www.gnu.org/licenses/agpl.html + + There is a plugin exception available for use with this release of translate5 for + translate5: Please see http://www.translate5.net/plugin-exception.txt or + plugin-exception.txt in the root folder of translate5. \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.yml new file mode 100644 index 00000000000..89a2bac88c2 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_32.yml @@ -0,0 +1,8 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +referenced_filenames: + - agpl3-license.txt +notes: Seen in https://github.com/translate5/translate5/blob/develop/Translate5/maintenance-cli.php +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.RULE new file mode 100644 index 00000000000..ed4ba230016 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.RULE @@ -0,0 +1,2 @@ +@license GNU AFFERO GENERAL PUBLIC LICENSE version 3 with plugin-execption + http://www.gnu.org/licenses/agpl.html http://www.translate5.net/plugin-exception.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.yml new file mode 100644 index 00000000000..e702c410985 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_33.yml @@ -0,0 +1,6 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +notes: Seen in https://github.com/translate5/translate5/blob/develop/Translate5/maintenance-cli.php +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.RULE b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.RULE new file mode 100644 index 00000000000..b7bf44af4a3 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.RULE @@ -0,0 +1,2 @@ +@license GNU AFFERO GENERAL PUBLIC LICENSE version 3 with plugin-exception + http://www.gnu.org/licenses/agpl.html http://www.translate5.net/plugin-exception.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.yml b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.yml new file mode 100644 index 00000000000..e702c410985 --- /dev/null +++ b/src/licensedcode/data/rules/agpl-3.0_with_agpl-generic-additional-terms_34.yml @@ -0,0 +1,6 @@ +license_expression: agpl-3.0 WITH agpl-generic-additional-terms +is_license_notice: yes +notes: Seen in https://github.com/translate5/translate5/blob/develop/Translate5/maintenance-cli.php +ignorable_urls: + - http://www.gnu.org/licenses/agpl.html + - http://www.translate5.net/plugin-exception.txt diff --git a/src/licensedcode/data/rules/apache-2.0_1144.RULE b/src/licensedcode/data/rules/apache-2.0_1144.RULE new file mode 100644 index 00000000000..867f43104f4 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1144.RULE @@ -0,0 +1,4 @@ +This software component is licensed by ST under Apache License, Version 2.0, +the "License"; You may not use this file except in compliance with the +License. You may obtain a copy of the License at: + opensource.org/licenses/Apache-2.0 \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_1144.yml b/src/licensedcode/data/rules/apache-2.0_1144.yml new file mode 100644 index 00000000000..487153a7721 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1144.yml @@ -0,0 +1,2 @@ +license_expression: apache-2.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/apache-2.0_1145.RULE b/src/licensedcode/data/rules/apache-2.0_1145.RULE new file mode 100644 index 00000000000..3a1c9e55a11 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1145.RULE @@ -0,0 +1,4 @@ +This software component is licensed by under Apache License, Version 2.0, +the "License"; You may not use this file except in compliance with the +License. You may obtain a copy of the License at: + opensource.org/licenses/Apache-2.0 \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_1145.yml b/src/licensedcode/data/rules/apache-2.0_1145.yml new file mode 100644 index 00000000000..487153a7721 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1145.yml @@ -0,0 +1,2 @@ +license_expression: apache-2.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/apache-2.0_1146.RULE b/src/licensedcode/data/rules/apache-2.0_1146.RULE new file mode 100644 index 00000000000..fae12560657 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1146.RULE @@ -0,0 +1 @@ +opensource.org/licenses/Apache-2.0 \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_1146.yml b/src/licensedcode/data/rules/apache-2.0_1146.yml new file mode 100644 index 00000000000..6b15a3a68eb --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1146.yml @@ -0,0 +1,3 @@ +license_expression: apache-2.0 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/bsd-simplified_316.RULE b/src/licensedcode/data/rules/bsd-simplified_316.RULE new file mode 100644 index 00000000000..46b4e25e16e --- /dev/null +++ b/src/licensedcode/data/rules/bsd-simplified_316.RULE @@ -0,0 +1 @@ +The software is open source software released under the "Simplified BSD License". \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-simplified_316.yml b/src/licensedcode/data/rules/bsd-simplified_316.yml new file mode 100644 index 00000000000..3b5338540a9 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-simplified_316.yml @@ -0,0 +1,3 @@ +license_expression: bsd-simplified +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/bsd-simplified_317.RULE b/src/licensedcode/data/rules/bsd-simplified_317.RULE new file mode 100644 index 00000000000..310e38ad1c0 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-simplified_317.RULE @@ -0,0 +1 @@ +released under the "Simplified BSD License". \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-simplified_317.yml b/src/licensedcode/data/rules/bsd-simplified_317.yml new file mode 100644 index 00000000000..3b5338540a9 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-simplified_317.yml @@ -0,0 +1,3 @@ +license_expression: bsd-simplified +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/false-positive_204.RULE b/src/licensedcode/data/rules/false-positive_204.RULE new file mode 100644 index 00000000000..4ebfe5abf02 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_204.RULE @@ -0,0 +1 @@ +these lists may not be modified \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_204.yml b/src/licensedcode/data/rules/false-positive_204.yml new file mode 100644 index 00000000000..7c0d8f3866b --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_204.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note diff --git a/src/licensedcode/data/rules/false-positive_213.RULE b/src/licensedcode/data/rules/false-positive_213.RULE new file mode 100644 index 00000000000..30c42a05127 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_213.RULE @@ -0,0 +1 @@ +MPL2 subtitles \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_213.yml b/src/licensedcode/data/rules/false-positive_213.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_213.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_215.RULE b/src/licensedcode/data/rules/false-positive_215.RULE new file mode 100644 index 00000000000..14a62572a56 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_215.RULE @@ -0,0 +1 @@ +MPL2 subtitle \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_215.yml b/src/licensedcode/data/rules/false-positive_215.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_215.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_217.RULE b/src/licensedcode/data/rules/false-positive_217.RULE new file mode 100644 index 00000000000..e21c49e7db6 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_217.RULE @@ -0,0 +1 @@ +ussbrowarek.org/mpl2-eng \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_217.yml b/src/licensedcode/data/rules/false-positive_217.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_217.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_221.RULE b/src/licensedcode/data/rules/false-positive_221.RULE new file mode 100644 index 00000000000..7c48eb29e0a --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_221.RULE @@ -0,0 +1 @@ +int mpl2 \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_221.yml b/src/licensedcode/data/rules/false-positive_221.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_221.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_240.RULE b/src/licensedcode/data/rules/false-positive_240.RULE new file mode 100644 index 00000000000..195265fa6ef --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_240.RULE @@ -0,0 +1 @@ +mpl2 decoder \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_240.yml b/src/licensedcode/data/rules/false-positive_240.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_240.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_243.RULE b/src/licensedcode/data/rules/false-positive_243.RULE new file mode 100644 index 00000000000..836718562ab --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_243.RULE @@ -0,0 +1 @@ +mpl2 decode \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_243.yml b/src/licensedcode/data/rules/false-positive_243.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_243.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_248.RULE b/src/licensedcode/data/rules/false-positive_248.RULE new file mode 100644 index 00000000000..6cb4bdc058f --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_248.RULE @@ -0,0 +1 @@ +decoder name mpl2 \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_248.yml b/src/licensedcode/data/rules/false-positive_248.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_248.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_249.RULE b/src/licensedcode/data/rules/false-positive_249.RULE new file mode 100644 index 00000000000..dce2e3a98ff --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_249.RULE @@ -0,0 +1 @@ +have BSD-like bzero \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_249.yml b/src/licensedcode/data/rules/false-positive_249.yml new file mode 100644 index 00000000000..7c0d8f3866b --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_249.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note diff --git a/src/licensedcode/data/rules/false-positive_253.RULE b/src/licensedcode/data/rules/false-positive_253.RULE new file mode 100644 index 00000000000..55c0d7e81bc --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_253.RULE @@ -0,0 +1 @@ +#else /* BSD style optind \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_253.yml b/src/licensedcode/data/rules/false-positive_253.yml new file mode 100644 index 00000000000..7c0d8f3866b --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_253.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note diff --git a/src/licensedcode/data/rules/false-positive_257.RULE b/src/licensedcode/data/rules/false-positive_257.RULE new file mode 100644 index 00000000000..e590c001110 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_257.RULE @@ -0,0 +1 @@ +BSD style disk \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_257.yml b/src/licensedcode/data/rules/false-positive_257.yml new file mode 100644 index 00000000000..7c0d8f3866b --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_257.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_566.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_566.RULE new file mode 100644 index 00000000000..480c929c1af --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_566.RULE @@ -0,0 +1,2 @@ +* This file is placed under the GPL. Please see the + * file COPYING for details. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_566.yml b/src/licensedcode/data/rules/gpl-1.0-plus_566.yml new file mode 100644 index 00000000000..016d63a60d4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_566.yml @@ -0,0 +1,5 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +relevance: 100 +referenced_filenames: + - COPYING diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_567.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_567.RULE new file mode 100644 index 00000000000..0eacd771b8d --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_567.RULE @@ -0,0 +1 @@ +* This file is placed under the GPL. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_567.yml b/src/licensedcode/data/rules/gpl-1.0-plus_567.yml new file mode 100644 index 00000000000..116c9848025 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_567.yml @@ -0,0 +1,3 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1070.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1070.RULE new file mode 100644 index 00000000000..e4be839092c --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1070.RULE @@ -0,0 +1,19 @@ +%%%LICENSE_START(GPLv2+_DOC_FULL) +This is free documentation; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. + +The GNU General Public License's references to "object code" +and "executables" are to be interpreted as the output of any +document formatting or typesetting system, including +intermediate and printed output. + +This manual is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public +License along with this manual; if not, see +. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1070.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1070.yml new file mode 100644 index 00000000000..52fb78bda1e --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1070.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1071.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1071.RULE new file mode 100644 index 00000000000..fa86b7ff4ba --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1071.RULE @@ -0,0 +1 @@ +LICENSE_START(GPLv2+_DOC_FULL \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1071.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1071.yml new file mode 100644 index 00000000000..d42f7d6e274 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1071.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus +is_license_tag: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1072.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1072.RULE new file mode 100644 index 00000000000..8e1ddab3c83 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1072.RULE @@ -0,0 +1 @@ +LICENSE_START(GPLv2+ \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1072.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1072.yml new file mode 100644 index 00000000000..d42f7d6e274 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1072.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus +is_license_tag: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1073.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1073.RULE new file mode 100644 index 00000000000..8215c7f244b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1073.RULE @@ -0,0 +1,13 @@ +* MPlayer is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * MPlayer is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with MPlayer; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1073.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1073.yml new file mode 100644 index 00000000000..4dd63d8726f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1073.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1074.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1074.RULE new file mode 100644 index 00000000000..502049c8f13 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1074.RULE @@ -0,0 +1,16 @@ +CONFIG_GPL + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 2 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1074.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1074.yml new file mode 100644 index 00000000000..c496204d9c6 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1074.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +notes: seen in FFmpeg diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1075.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1075.RULE new file mode 100644 index 00000000000..b94913edfe7 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1075.RULE @@ -0,0 +1,14 @@ +"%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 2 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1075.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1075.yml new file mode 100644 index 00000000000..c496204d9c6 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1075.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +notes: seen in FFmpeg diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.RULE new file mode 100644 index 00000000000..2628ed3a9d0 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.RULE @@ -0,0 +1,16 @@ +* Note that this file is NOT licensed under the Academic Free License, + * as it is based on linc-cleanup-sockets which is LGPL. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.yml b/src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.yml new file mode 100644 index 00000000000..a4977cbd74c --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_and_lgpl-2.0-plus_2.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus AND lgpl-2.0-plus +is_license_notice: yes +minimum_coverage: 95 diff --git a/src/licensedcode/data/rules/gpl-2.0_1387.RULE b/src/licensedcode/data/rules/gpl-2.0_1387.RULE new file mode 100644 index 00000000000..fe040dad61b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_1387.RULE @@ -0,0 +1,13 @@ +FFmpeg is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; + version 2 of the License. + + FFmpeg is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public + License along with FFmpeg; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_1387.yml b/src/licensedcode/data/rules/gpl-2.0_1387.yml new file mode 100644 index 00000000000..b4d16a83607 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_1387.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0 +is_license_notice: yes +notes: seen in FFmpeg diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_556.RULE b/src/licensedcode/data/rules/gpl-3.0-plus_556.RULE new file mode 100644 index 00000000000..62ac6560127 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_556.RULE @@ -0,0 +1,12 @@ +This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . + The complete text of the GNU General Public License + can be found in /usr/share/common-licenses/GPL-3 file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_556.yml b/src/licensedcode/data/rules/gpl-3.0-plus_556.yml new file mode 100644 index 00000000000..25a772d29fc --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_556.yml @@ -0,0 +1,4 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_557.RULE b/src/licensedcode/data/rules/gpl-3.0-plus_557.RULE new file mode 100644 index 00000000000..dc9710a73e4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_557.RULE @@ -0,0 +1 @@ +licensed under the GNU GPL version 3 or later. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_557.yml b/src/licensedcode/data/rules/gpl-3.0-plus_557.yml new file mode 100644 index 00000000000..330b110344e --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_557.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_558.RULE b/src/licensedcode/data/rules/gpl-3.0-plus_558.RULE new file mode 100644 index 00000000000..216d98f7e2b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_558.RULE @@ -0,0 +1,2 @@ +licensed under the GNU GPL version 3 or later. +See the file COPYING for details. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_558.yml b/src/licensedcode/data/rules/gpl-3.0-plus_558.yml new file mode 100644 index 00000000000..2d1b5332c20 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_558.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes +relevance: 100 +referenced_filenames: + - COPYING diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_559.RULE b/src/licensedcode/data/rules/gpl-3.0-plus_559.RULE new file mode 100644 index 00000000000..643ba348b5f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_559.RULE @@ -0,0 +1,15 @@ +CONFIG_GPLV3 + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_559.yml b/src/licensedcode/data/rules/gpl-3.0-plus_559.yml new file mode 100644 index 00000000000..cef73bcde15 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_559.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes +notes: seen in FFmpeg +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_560.RULE b/src/licensedcode/data/rules/gpl-3.0-plus_560.RULE new file mode 100644 index 00000000000..6ac5498f430 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_560.RULE @@ -0,0 +1,13 @@ +"%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0-plus_560.yml b/src/licensedcode/data/rules/gpl-3.0-plus_560.yml new file mode 100644 index 00000000000..cef73bcde15 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0-plus_560.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0-plus +is_license_notice: yes +notes: seen in FFmpeg +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/gpl-3.0_529.RULE b/src/licensedcode/data/rules/gpl-3.0_529.RULE new file mode 100644 index 00000000000..fabf5db08d3 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_529.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the GNU General Public License (GPL) version 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_529.yml b/src/licensedcode/data/rules/gpl-3.0_529.yml new file mode 100644 index 00000000000..42b6a8c05c4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_529.yml @@ -0,0 +1,2 @@ +license_expression: gpl-3.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-3.0_530.RULE b/src/licensedcode/data/rules/gpl-3.0_530.RULE new file mode 100644 index 00000000000..2fd497afc55 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_530.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the GNU General Public License (GPL) versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_530.yml b/src/licensedcode/data/rules/gpl-3.0_530.yml new file mode 100644 index 00000000000..42b6a8c05c4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_530.yml @@ -0,0 +1,2 @@ +license_expression: gpl-3.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-3.0_531.RULE b/src/licensedcode/data/rules/gpl-3.0_531.RULE new file mode 100644 index 00000000000..6e0ab9004b9 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_531.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the GNU GPL version 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_531.yml b/src/licensedcode/data/rules/gpl-3.0_531.yml new file mode 100644 index 00000000000..2774025859b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_531.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_532.RULE b/src/licensedcode/data/rules/gpl-3.0_532.RULE new file mode 100644 index 00000000000..9c6d1a5115e --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_532.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the GNU GPL versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_532.yml b/src/licensedcode/data/rules/gpl-3.0_532.yml new file mode 100644 index 00000000000..2774025859b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_532.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_533.RULE b/src/licensedcode/data/rules/gpl-3.0_533.RULE new file mode 100644 index 00000000000..4d3f83d8725 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_533.RULE @@ -0,0 +1 @@ +You are also licensed to use this software under the terms of the GNU General Public License (GPL) version 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_533.yml b/src/licensedcode/data/rules/gpl-3.0_533.yml new file mode 100644 index 00000000000..42b6a8c05c4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_533.yml @@ -0,0 +1,2 @@ +license_expression: gpl-3.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-3.0_534.RULE b/src/licensedcode/data/rules/gpl-3.0_534.RULE new file mode 100644 index 00000000000..109b15fec13 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_534.RULE @@ -0,0 +1 @@ +You are also licensed to use this software under the terms of the GNU General Public License (GPL) versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_534.yml b/src/licensedcode/data/rules/gpl-3.0_534.yml new file mode 100644 index 00000000000..42b6a8c05c4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_534.yml @@ -0,0 +1,2 @@ +license_expression: gpl-3.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-3.0_535.RULE b/src/licensedcode/data/rules/gpl-3.0_535.RULE new file mode 100644 index 00000000000..c6ade3731f8 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_535.RULE @@ -0,0 +1 @@ +You are also licensed to use this software under the terms of the GNU GPL version 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_535.yml b/src/licensedcode/data/rules/gpl-3.0_535.yml new file mode 100644 index 00000000000..2774025859b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_535.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_536.RULE b/src/licensedcode/data/rules/gpl-3.0_536.RULE new file mode 100644 index 00000000000..b56c4241ab3 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_536.RULE @@ -0,0 +1 @@ +You are also licensed to use this software under the terms of the GNU GPL versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_536.yml b/src/licensedcode/data/rules/gpl-3.0_536.yml new file mode 100644 index 00000000000..2774025859b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_536.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_537.RULE b/src/licensedcode/data/rules/gpl-3.0_537.RULE new file mode 100644 index 00000000000..a946667b9da --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_537.RULE @@ -0,0 +1 @@ +GNU General Public License (GPL) versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_537.yml b/src/licensedcode/data/rules/gpl-3.0_537.yml new file mode 100644 index 00000000000..9a4537d99e9 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_537.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_538.RULE b/src/licensedcode/data/rules/gpl-3.0_538.RULE new file mode 100644 index 00000000000..b923df1cb07 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_538.RULE @@ -0,0 +1 @@ +GNU General Public License versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_538.yml b/src/licensedcode/data/rules/gpl-3.0_538.yml new file mode 100644 index 00000000000..9a4537d99e9 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_538.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_539.RULE b/src/licensedcode/data/rules/gpl-3.0_539.RULE new file mode 100644 index 00000000000..8c25a5982a7 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_539.RULE @@ -0,0 +1 @@ +GNU GPL versions 3. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_539.yml b/src/licensedcode/data/rules/gpl-3.0_539.yml new file mode 100644 index 00000000000..9a4537d99e9 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_539.yml @@ -0,0 +1,3 @@ +license_expression: gpl-3.0 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/gpl-3.0_540.RULE b/src/licensedcode/data/rules/gpl-3.0_540.RULE new file mode 100644 index 00000000000..55894fff3dc --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_540.RULE @@ -0,0 +1,3 @@ +License +This library and utilities are licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html +also included in the repository in the `COPYING.GPLv3` file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_540.yml b/src/licensedcode/data/rules/gpl-3.0_540.yml new file mode 100644 index 00000000000..5643e2f60b4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_540.yml @@ -0,0 +1,6 @@ +license_expression: gpl-3.0 +is_license_notice: yes +referenced_filenames: + - COPYING.GPLv3 +ignorable_urls: + - https://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/src/licensedcode/data/rules/gpl-3.0_541.RULE b/src/licensedcode/data/rules/gpl-3.0_541.RULE new file mode 100644 index 00000000000..392b6299bbf --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_541.RULE @@ -0,0 +1,2 @@ +licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html +also included in the repository in the `COPYING.GPLv3` file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_541.yml b/src/licensedcode/data/rules/gpl-3.0_541.yml new file mode 100644 index 00000000000..5643e2f60b4 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_541.yml @@ -0,0 +1,6 @@ +license_expression: gpl-3.0 +is_license_notice: yes +referenced_filenames: + - COPYING.GPLv3 +ignorable_urls: + - https://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/src/licensedcode/data/rules/gpl-3.0_542.RULE b/src/licensedcode/data/rules/gpl-3.0_542.RULE new file mode 100644 index 00000000000..37709e29a65 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_542.RULE @@ -0,0 +1,3 @@ +License + +This library and utilities are licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_542.yml b/src/licensedcode/data/rules/gpl-3.0_542.yml new file mode 100644 index 00000000000..573ec2bf644 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_542.yml @@ -0,0 +1,4 @@ +license_expression: gpl-3.0 +is_license_notice: yes +ignorable_urls: + - https://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/src/licensedcode/data/rules/gpl-3.0_543.RULE b/src/licensedcode/data/rules/gpl-3.0_543.RULE new file mode 100644 index 00000000000..642b8b1571f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_543.RULE @@ -0,0 +1 @@ +licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_543.yml b/src/licensedcode/data/rules/gpl-3.0_543.yml new file mode 100644 index 00000000000..573ec2bf644 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_543.yml @@ -0,0 +1,4 @@ +license_expression: gpl-3.0 +is_license_notice: yes +ignorable_urls: + - https://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/src/licensedcode/data/rules/gpl-3.0_544.RULE b/src/licensedcode/data/rules/gpl-3.0_544.RULE new file mode 100644 index 00000000000..4622e7198fe --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_544.RULE @@ -0,0 +1 @@ +GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_544.yml b/src/licensedcode/data/rules/gpl-3.0_544.yml new file mode 100644 index 00000000000..29d7c8daa91 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_544.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0 +is_license_reference: yes +relevance: 100 +ignorable_urls: + - https://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/src/licensedcode/data/rules/gpl-3.0_545.RULE b/src/licensedcode/data/rules/gpl-3.0_545.RULE new file mode 100644 index 00000000000..f6942bfe986 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_545.RULE @@ -0,0 +1 @@ +included in the repository in the `COPYING.GPLv3` file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_545.yml b/src/licensedcode/data/rules/gpl-3.0_545.yml new file mode 100644 index 00000000000..414979af90c --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_545.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0 +is_license_reference: yes +relevance: 100 +referenced_filenames: + - COPYING.GPLv3 diff --git a/src/licensedcode/data/rules/gpl-3.0_546.RULE b/src/licensedcode/data/rules/gpl-3.0_546.RULE new file mode 100644 index 00000000000..1b630d1b86e --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_546.RULE @@ -0,0 +1 @@ +in the `COPYING.GPLv3` file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-3.0_546.yml b/src/licensedcode/data/rules/gpl-3.0_546.yml new file mode 100644 index 00000000000..414979af90c --- /dev/null +++ b/src/licensedcode/data/rules/gpl-3.0_546.yml @@ -0,0 +1,5 @@ +license_expression: gpl-3.0 +is_license_reference: yes +relevance: 100 +referenced_filenames: + - COPYING.GPLv3 diff --git a/src/licensedcode/data/rules/json_3.RULE b/src/licensedcode/data/rules/json_3.RULE index dd457ada87d..505b932ac73 100644 --- a/src/licensedcode/data/rules/json_3.RULE +++ b/src/licensedcode/data/rules/json_3.RULE @@ -10,11 +10,11 @@ subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -The Software shall be used for Good, not Evil. +{{The Software shall be used for Good, not Evil.}} THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_424.yml b/src/licensedcode/data/rules/lgpl-2.0-plus_424.yml index 24dea948207..13fd1702326 100644 --- a/src/licensedcode/data/rules/lgpl-2.0-plus_424.yml +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_424.yml @@ -1,3 +1,6 @@ license_expression: lgpl-2.0-plus is_license_notice: yes relevance: 90 +notes: the relevance is not 100 because the license uses "lesser" and a v2 + but the v2 should be "library" and only v2.1 and v3 of the lgpl are + using "lesser". diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_555.RULE b/src/licensedcode/data/rules/lgpl-2.0-plus_555.RULE new file mode 100644 index 00000000000..afef428c01e --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_555.RULE @@ -0,0 +1,2 @@ +* This file is placed under the LGPL. Please see the + * file COPYING for details. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_555.yml b/src/licensedcode/data/rules/lgpl-2.0-plus_555.yml new file mode 100644 index 00000000000..4681cdf83a7 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_555.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-2.0-plus +is_license_notice: yes +relevance: 100 +referenced_filenames: + - COPYING diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_556.RULE b/src/licensedcode/data/rules/lgpl-2.0-plus_556.RULE new file mode 100644 index 00000000000..a1cce95026a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_556.RULE @@ -0,0 +1 @@ +* This file is placed under the LGPL. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.0-plus_556.yml b/src/licensedcode/data/rules/lgpl-2.0-plus_556.yml new file mode 100644 index 00000000000..8775364f78c --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.0-plus_556.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.0-plus +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_22.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_22.RULE index da3630b392e..51964b149be 100644 --- a/src/licensedcode/data/rules/lgpl-2.1-plus_22.RULE +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_22.RULE @@ -1,12 +1,12 @@ * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public + * modify it under the terms of the {{GNU Lesser General}} Public * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. + * {{version 2.1 of the License}}, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. + * {{Lesser General}} Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_447.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_447.RULE new file mode 100644 index 00000000000..b09c048014a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_447.RULE @@ -0,0 +1,13 @@ +* This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 2.1 of the + * License, or (at your option) any later version. + * +s * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_447.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_447.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_447.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_448.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_448.RULE new file mode 100644 index 00000000000..c254619a307 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_448.RULE @@ -0,0 +1,14 @@ +"%s is free software; you can redistribute it and/or\n" + "modify it under the terms of the GNU Lesser General Public\n" + "License as published by the Free Software Foundation; either\n" + "version 2.1 of the License, or (at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" + "Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public\n" + "License along with %s; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_448.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_448.yml new file mode 100644 index 00000000000..a70238493a1 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_448.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +notes: seen in FFmpeg diff --git a/src/licensedcode/data/rules/lgpl-2.1_420.RULE b/src/licensedcode/data/rules/lgpl-2.1_420.RULE new file mode 100644 index 00000000000..6e57c6d1a1a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_420.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the Lesser GNU LGPL version 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_420.yml b/src/licensedcode/data/rules/lgpl-2.1_420.yml new file mode 100644 index 00000000000..2f63b78d973 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_420.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1_421.RULE b/src/licensedcode/data/rules/lgpl-2.1_421.RULE new file mode 100644 index 00000000000..452b44415da --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_421.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the Lesser GNU LGPL versions 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_421.yml b/src/licensedcode/data/rules/lgpl-2.1_421.yml new file mode 100644 index 00000000000..2f63b78d973 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_421.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1_422.RULE b/src/licensedcode/data/rules/lgpl-2.1_422.RULE new file mode 100644 index 00000000000..2b42e0c94eb --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_422.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the Lesser GNU General Public License (LGPL) version 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_422.yml b/src/licensedcode/data/rules/lgpl-2.1_422.yml new file mode 100644 index 00000000000..2f63b78d973 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_422.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1_423.RULE b/src/licensedcode/data/rules/lgpl-2.1_423.RULE new file mode 100644 index 00000000000..614057c4f8e --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_423.RULE @@ -0,0 +1 @@ +You are licensed to use this software under the terms of the Lesser GNU General Public License (LGPL) versions 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_423.yml b/src/licensedcode/data/rules/lgpl-2.1_423.yml new file mode 100644 index 00000000000..2f63b78d973 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_423.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1_424.RULE b/src/licensedcode/data/rules/lgpl-2.1_424.RULE new file mode 100644 index 00000000000..c5e5b568676 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_424.RULE @@ -0,0 +1 @@ +Lesser GNU LGPL version 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_424.yml b/src/licensedcode/data/rules/lgpl-2.1_424.yml new file mode 100644 index 00000000000..9ea4e2c0146 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_424.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-2.1_425.RULE b/src/licensedcode/data/rules/lgpl-2.1_425.RULE new file mode 100644 index 00000000000..2777a606372 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_425.RULE @@ -0,0 +1 @@ +Lesser GNU LGPL versions 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_425.yml b/src/licensedcode/data/rules/lgpl-2.1_425.yml new file mode 100644 index 00000000000..9ea4e2c0146 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_425.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-2.1_426.RULE b/src/licensedcode/data/rules/lgpl-2.1_426.RULE new file mode 100644 index 00000000000..b1caf761f35 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_426.RULE @@ -0,0 +1 @@ +Lesser GNU General Public License (LGPL) version 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_426.yml b/src/licensedcode/data/rules/lgpl-2.1_426.yml new file mode 100644 index 00000000000..9ea4e2c0146 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_426.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-2.1_427.RULE b/src/licensedcode/data/rules/lgpl-2.1_427.RULE new file mode 100644 index 00000000000..9d249b213c4 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_427.RULE @@ -0,0 +1 @@ +Lesser GNU General Public License (LGPL) versions 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_427.yml b/src/licensedcode/data/rules/lgpl-2.1_427.yml new file mode 100644 index 00000000000..9ea4e2c0146 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_427.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-2.1_428.RULE b/src/licensedcode/data/rules/lgpl-2.1_428.RULE new file mode 100644 index 00000000000..dcfc5eef760 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_428.RULE @@ -0,0 +1 @@ +Lesser GNU General Public License versions 2.1 \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_428.yml b/src/licensedcode/data/rules/lgpl-2.1_428.yml new file mode 100644 index 00000000000..9ea4e2c0146 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_428.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1 +is_license_reference: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-3.0-plus_281.RULE b/src/licensedcode/data/rules/lgpl-3.0-plus_281.RULE new file mode 100644 index 00000000000..e25c516fd08 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0-plus_281.RULE @@ -0,0 +1,15 @@ +CONFIG_LGPLV3 + printf( + "%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU Lesser General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0-plus_281.yml b/src/licensedcode/data/rules/lgpl-3.0-plus_281.yml new file mode 100644 index 00000000000..5c29820ea94 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0-plus_281.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-3.0-plus +is_license_notice: yes +notes: seen in FFmpeg +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/lgpl-3.0-plus_282.RULE b/src/licensedcode/data/rules/lgpl-3.0-plus_282.RULE new file mode 100644 index 00000000000..b7d6ac477c4 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0-plus_282.RULE @@ -0,0 +1,13 @@ +"%s is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU Lesser General Public License as published by\n" + "the Free Software Foundation; either version 3 of the License, or\n" + "(at your option) any later version.\n" + "\n" + "%s is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU Lesser General Public License for more details.\n" + "\n" + "You should have received a copy of the GNU Lesser General Public License\n" + "along with %s. If not, see .\n", + program_name, program_name, program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0-plus_282.yml b/src/licensedcode/data/rules/lgpl-3.0-plus_282.yml new file mode 100644 index 00000000000..5c29820ea94 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0-plus_282.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-3.0-plus +is_license_notice: yes +notes: seen in FFmpeg +ignorable_urls: + - http://www.gnu.org/licenses/ diff --git a/src/licensedcode/data/rules/lgpl-3.0_303.RULE b/src/licensedcode/data/rules/lgpl-3.0_303.RULE new file mode 100644 index 00000000000..934c3a6d78f --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_303.RULE @@ -0,0 +1,10 @@ +START LICENSE AND COPYRIGHT + This file may be used under the terms of the GNU LESSER GENERAL PUBLIC LICENSE version 3 + as published by the Free Software Foundation and appearing in the file lgpl3-license.txt + included in the packaging of this file. Please review the following information + to ensure the GNU LESSER GENERAL PUBLIC LICENSE version 3.0 requirements will be met: +https://www.gnu.org/licenses/lgpl-3.0.txt + + @license GNU LESSER GENERAL PUBLIC LICENSE version 3 + https://www.gnu.org/licenses/lgpl-3.0.txt +END LICENSE AND COPYRIGHT \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_303.yml b/src/licensedcode/data/rules/lgpl-3.0_303.yml new file mode 100644 index 00000000000..e3f7df1c4cb --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_303.yml @@ -0,0 +1,7 @@ +license_expression: lgpl-3.0 +is_license_notice: yes +referenced_filenames: + - lgpl3-license.txt +notes: https://github.com/translate5/ZfExtended/blob/c18f8771dff7e6df94dad43f883e5bea4c18cac6/Worker/Abstract.php +ignorable_urls: + - https://www.gnu.org/licenses/lgpl-3.0.txt diff --git a/src/licensedcode/data/rules/lgpl-3.0_304.RULE b/src/licensedcode/data/rules/lgpl-3.0_304.RULE new file mode 100644 index 00000000000..16b53f0277f --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_304.RULE @@ -0,0 +1,5 @@ +This file may be used under the terms of the GNU LESSER GENERAL PUBLIC LICENSE version 3 + as published by the Free Software Foundation and appearing in the file lgpl3-license.txt + included in the packaging of this file. Please review the following information + to ensure the GNU LESSER GENERAL PUBLIC LICENSE version 3.0 requirements will be met: +https://www.gnu.org/licenses/lgpl-3.0.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_304.yml b/src/licensedcode/data/rules/lgpl-3.0_304.yml new file mode 100644 index 00000000000..e3f7df1c4cb --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_304.yml @@ -0,0 +1,7 @@ +license_expression: lgpl-3.0 +is_license_notice: yes +referenced_filenames: + - lgpl3-license.txt +notes: https://github.com/translate5/ZfExtended/blob/c18f8771dff7e6df94dad43f883e5bea4c18cac6/Worker/Abstract.php +ignorable_urls: + - https://www.gnu.org/licenses/lgpl-3.0.txt diff --git a/src/licensedcode/data/rules/lgpl-3.0_305.RULE b/src/licensedcode/data/rules/lgpl-3.0_305.RULE new file mode 100644 index 00000000000..27faa2cb351 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_305.RULE @@ -0,0 +1,2 @@ +@license GNU LESSER GENERAL PUBLIC LICENSE version 3 + https://www.gnu.org/licenses/lgpl-3.0.txt \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_305.yml b/src/licensedcode/data/rules/lgpl-3.0_305.yml new file mode 100644 index 00000000000..2c14d236e06 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_305.yml @@ -0,0 +1,8 @@ +license_expression: lgpl-3.0 +is_license_tag: yes +relevance: 100 +referenced_filenames: + - lgpl3-license.txt +notes: https://github.com/translate5/ZfExtended/blob/c18f8771dff7e6df94dad43f883e5bea4c18cac6/Worker/Abstract.php +ignorable_urls: + - https://www.gnu.org/licenses/lgpl-3.0.txt diff --git a/src/licensedcode/data/rules/lgpl-3.0_306.RULE b/src/licensedcode/data/rules/lgpl-3.0_306.RULE new file mode 100644 index 00000000000..2c69ef68efc --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_306.RULE @@ -0,0 +1 @@ +GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_306.yml b/src/licensedcode/data/rules/lgpl-3.0_306.yml new file mode 100644 index 00000000000..adc229742d9 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_306.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-3.0 +is_license_reference: yes +relevance: 100 +ignorable_urls: + - https://www.gnu.org/licenses/lgpl-3.0.en.html diff --git a/src/licensedcode/data/rules/lgpl-3.0_307.RULE b/src/licensedcode/data/rules/lgpl-3.0_307.RULE new file mode 100644 index 00000000000..6b562ab73e7 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_307.RULE @@ -0,0 +1 @@ +GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.en.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-3.0_307.yml b/src/licensedcode/data/rules/lgpl-3.0_307.yml new file mode 100644 index 00000000000..0caba5f5c5d --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-3.0_307.yml @@ -0,0 +1,5 @@ +license_expression: lgpl-3.0 +is_license_reference: yes +relevance: 100 +ignorable_urls: + - https://www.gnu.org/licenses/agpl-3.0.en.html diff --git a/src/licensedcode/data/rules/other-permissive_353.RULE b/src/licensedcode/data/rules/other-permissive_353.RULE new file mode 100644 index 00000000000..c5d9b1a6791 --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_353.RULE @@ -0,0 +1,7 @@ +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_353.yml b/src/licensedcode/data/rules/other-permissive_353.yml new file mode 100644 index 00000000000..b2c8699ce9a --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_353.yml @@ -0,0 +1,3 @@ +license_expression: other-permissive +is_license_text: yes +notes: Seen in http://elm-chan.org/fsw/ff/arc/ff11a.zip diff --git a/src/licensedcode/data/rules/other-permissive_354.RULE b/src/licensedcode/data/rules/other-permissive_354.RULE new file mode 100644 index 00000000000..0f5aa581c3c --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_354.RULE @@ -0,0 +1,17 @@ +/ FatFs module is a free software that opened under license policy of +/ following conditions. +/ + +/ 1. Redistributions of source code must retain the above copyright notice, +/ this condition and the following disclaimer. +/ +/ This software is provided by the copyright holder and contributors "AS IS" +/ and any warranties related to this software are DISCLAIMED. +/ The copyright owner or contributors be NOT LIABLE for any damages caused +/ by use of this software. + +Therefore FatFs license is one of the BSD-style licenses but there is a significant +feature. FatFs is mainly intended for embedded systems. In order to extend the usability +for commercial products, the redistributions of FatFs in binary form, such as embedded code or any forms without source code, does not need to explain about use of FatFs in the documentations. This is equivalent to the 1-clause BSD license. + +Of course FatFs is compatible with the most open source software licenses including GNU GPL. When you redistribute the FatFs source code with any modification or create a fork, the license can also be changed to GNU GPL, BSD-style license or any open source software licenses that not conflict with FatFs license. \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_354.yml b/src/licensedcode/data/rules/other-permissive_354.yml new file mode 100644 index 00000000000..b2c8699ce9a --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_354.yml @@ -0,0 +1,3 @@ +license_expression: other-permissive +is_license_text: yes +notes: Seen in http://elm-chan.org/fsw/ff/arc/ff11a.zip diff --git a/src/licensedcode/data/rules/proprietary-license_782.RULE b/src/licensedcode/data/rules/proprietary-license_782.RULE new file mode 100644 index 00000000000..ae1523a8a4f --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_782.RULE @@ -0,0 +1,8 @@ +* This computer software is owned by Rogue Wave Software, Inc. and is + * protected by U.S. copyright laws and other laws and by international + * treaties. This computer software is furnished by Rogue Wave Software, + * Inc. pursuant to a written license agreement and may be used, copied, + * transmitted, and stored only in accordance with the terms of such + * license and with the inclusion of the above copyright notice. This + * computer software or any other copies thereof may not be provided or + * otherwise made available to any other person. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_782.yml b/src/licensedcode/data/rules/proprietary-license_782.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_782.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_783.RULE b/src/licensedcode/data/rules/proprietary-license_783.RULE new file mode 100644 index 00000000000..272d9550cef --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_783.RULE @@ -0,0 +1,17 @@ +* This computer software is owned by Rogue Wave Software, Inc. and is + * protected by U.S. copyright laws and other laws and by international + * treaties. This computer software is furnished by Rogue Wave Software, + * Inc. pursuant to a written license agreement and may be used, copied, + * transmitted, and stored only in accordance with the terms of such + * license and with the inclusion of the above copyright notice. This + * computer software or any other copies thereof may not be provided or + * otherwise made available to any other person. + + * U.S. Government Restricted Rights. This computer software is provided + * with Restricted Rights. Use, duplication, or disclosure by the + * Government is subject to restrictions as set forth in subparagraph (c) + * (1) (ii) of The Rights in Technical Data and Computer Software clause + * at DFARS 252.227-7013 or subparagraphs (c) (1) and (2) of the + * Commercial Computer Software--Restricted Rights at 48 CFR 52.227-19, + * as applicable. Manufacturer is Rogue Wave Software, Inc., 5500 + * Flatiron Parkway, Boulder, Colorado 80301 USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_783.yml b/src/licensedcode/data/rules/proprietary-license_783.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_783.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_784.RULE b/src/licensedcode/data/rules/proprietary-license_784.RULE new file mode 100644 index 00000000000..33a493aaba2 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_784.RULE @@ -0,0 +1,12 @@ +THIS SOFTWARE PROVIDED BY CORPORATION IS SAMPLE +CODE INTENDED FOR EVALUATION PURPOSES ONLY. IT IS NOT INTENDED FOR COMMERCIAL +USE. THIS SOFTWARE IS PROVIDED BY "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 EXPRESSLY AND +SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL 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/rules/proprietary-license_784.yml b/src/licensedcode/data/rules/proprietary-license_784.yml new file mode 100644 index 00000000000..a189944d69d --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_784.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_notice: yes diff --git a/src/licensedcode/data/rules/proprietary-license_785.RULE b/src/licensedcode/data/rules/proprietary-license_785.RULE new file mode 100644 index 00000000000..c22498dd549 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_785.RULE @@ -0,0 +1 @@ +restrictions on the commercial use of this data \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_785.yml b/src/licensedcode/data/rules/proprietary-license_785.yml new file mode 100644 index 00000000000..cd8fbc3ef2b --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_785.yml @@ -0,0 +1,4 @@ +license_expression: proprietary-license +is_license_notice: yes +relevance: 100 +notes: seen in libxml2 wrt. a Kanji dictionary. See http://nihongo.monash.edu/kanjidic2/index.html diff --git a/src/licensedcode/data/rules/proprietary-license_786.RULE b/src/licensedcode/data/rules/proprietary-license_786.RULE new file mode 100644 index 00000000000..3512f92afe9 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_786.RULE @@ -0,0 +1,5 @@ +CONFIG_NONFREE + printf( + "This version of %s has nonfree parts compiled in.\n" + "Therefore it is not legally redistributable.\n", + program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_786.yml b/src/licensedcode/data/rules/proprietary-license_786.yml new file mode 100644 index 00000000000..7ea70c0f185 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_786.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +notes: Seen in FFmpeg diff --git a/src/licensedcode/data/rules/proprietary-license_787.RULE b/src/licensedcode/data/rules/proprietary-license_787.RULE new file mode 100644 index 00000000000..91d254467af --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_787.RULE @@ -0,0 +1,3 @@ +"This version of %s has nonfree parts compiled in.\n" + "Therefore it is not legally redistributable.\n", + program_name ); \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_787.yml b/src/licensedcode/data/rules/proprietary-license_787.yml new file mode 100644 index 00000000000..7ea70c0f185 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_787.yml @@ -0,0 +1,3 @@ +license_expression: proprietary-license +is_license_notice: yes +notes: Seen in FFmpeg diff --git a/src/licensedcode/data/rules/public-domain_458.RULE b/src/licensedcode/data/rules/public-domain_458.RULE new file mode 100644 index 00000000000..bc41ab089c4 --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_458.RULE @@ -0,0 +1 @@ +not considered to be subject to copyright \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_458.yml b/src/licensedcode/data/rules/public-domain_458.yml new file mode 100644 index 00000000000..b311065ead0 --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_458.yml @@ -0,0 +1,3 @@ +license_expression: public-domain +is_license_reference: yes +relevance: 80 diff --git a/src/licensedcode/data/rules/public-domain_459.RULE b/src/licensedcode/data/rules/public-domain_459.RULE new file mode 100644 index 00000000000..fa0b81e75f6 --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_459.RULE @@ -0,0 +1,6 @@ +* Subject: {{public domain}} AT&T getopt source + * Here's something you've all been waiting for: the AT&T {{public domain}} + * source for getopt(3). It is the code which was given out at the 1985 + * UNIFORUM conference in Dallas. I obtained it by electronic mail + * directly from AT&T. The people there assure me that it is indeed + * {{in the public domain.}} \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_459.yml b/src/licensedcode/data/rules/public-domain_459.yml new file mode 100644 index 00000000000..864ba2e932b --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_459.yml @@ -0,0 +1,4 @@ +license_expression: public-domain +is_license_text: yes +minimum_coverage: 80 +notes: seen in FFmpeg compat/getopt.c diff --git a/src/licensedcode/data/rules/public-domain_460.RULE b/src/licensedcode/data/rules/public-domain_460.RULE new file mode 100644 index 00000000000..7dd9386486f --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_460.RULE @@ -0,0 +1 @@ +public domain AT&T getopt source \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_460.yml b/src/licensedcode/data/rules/public-domain_460.yml new file mode 100644 index 00000000000..faa2b51d583 --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_460.yml @@ -0,0 +1,4 @@ +license_expression: public-domain +is_license_text: yes +relevance: 100 +notes: seen in FFmpeg compat/getopt.c diff --git a/src/licensedcode/data/rules/smsc-non-commercial-2012_1.RULE b/src/licensedcode/data/rules/smsc-non-commercial-2012_1.RULE new file mode 100644 index 00000000000..5bbeb7bb453 --- /dev/null +++ b/src/licensedcode/data/rules/smsc-non-commercial-2012_1.RULE @@ -0,0 +1,12 @@ +THIS SOFTWARE PROVIDED BY STANDARD MICROSYSTEMS CORPORATION`("SMSC")IS SAMPLE +CODE INTENDED FOR EVALUATION PURPOSES ONLY. IT IS NOT INTENDED FOR COMMERCIAL +USE. THIS SOFTWARE IS PROVIDED BY SMSC "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 EXPRESSLY AND +SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL SMSC 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/rules/smsc-non-commercial-2012_1.yml b/src/licensedcode/data/rules/smsc-non-commercial-2012_1.yml new file mode 100644 index 00000000000..67916e426d3 --- /dev/null +++ b/src/licensedcode/data/rules/smsc-non-commercial-2012_1.yml @@ -0,0 +1,2 @@ +license_expression: smsc-non-commercial-2012 +is_license_notice: yes From feea3faf5254d680980977463fb5866bf3b9b435 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 30 Sep 2022 17:21:38 +0200 Subject: [PATCH 42/54] Add new convenience tool to debug licenses This is a minimal CSV output for key license detection data that lives in the etc directory and can be intalled via pip locally Signed-off-by: Philippe Ombredanne --- etc/scripts/licenses/license-csv/.gitignore | 1 + etc/scripts/licenses/license-csv/README.rst | 1 + .../license-csv/scancode_debug_license_csv.py | 139 ++++++++++++++++++ etc/scripts/licenses/license-csv/setup.cfg | 15 ++ etc/scripts/licenses/license-csv/setup.py | 6 + 5 files changed, 162 insertions(+) create mode 100644 etc/scripts/licenses/license-csv/.gitignore create mode 100644 etc/scripts/licenses/license-csv/README.rst create mode 100644 etc/scripts/licenses/license-csv/scancode_debug_license_csv.py create mode 100644 etc/scripts/licenses/license-csv/setup.cfg create mode 100644 etc/scripts/licenses/license-csv/setup.py diff --git a/etc/scripts/licenses/license-csv/.gitignore b/etc/scripts/licenses/license-csv/.gitignore new file mode 100644 index 00000000000..84c048a73cc --- /dev/null +++ b/etc/scripts/licenses/license-csv/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/etc/scripts/licenses/license-csv/README.rst b/etc/scripts/licenses/license-csv/README.rst new file mode 100644 index 00000000000..bdad2a607c7 --- /dev/null +++ b/etc/scripts/licenses/license-csv/README.rst @@ -0,0 +1 @@ +A ScanCode CSV output helpful to debug license detection \ No newline at end of file diff --git a/etc/scripts/licenses/license-csv/scancode_debug_license_csv.py b/etc/scripts/licenses/license-csv/scancode_debug_license_csv.py new file mode 100644 index 00000000000..533f6912ac1 --- /dev/null +++ b/etc/scripts/licenses/license-csv/scancode_debug_license_csv.py @@ -0,0 +1,139 @@ +# +# 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 csv +import warnings + +import saneyaml + +from commoncode.cliutils import PluggableCommandLineOption +from commoncode.cliutils import OUTPUT_GROUP +from plugincode.output import output_impl +from plugincode.output import OutputPlugin + +from formattedcode import FileOptionType + +# Tracing flags +TRACE = False + + +def logger_debug(*args): + pass + + +if TRACE: + import sys + import logging + + logger = logging.getLogger(__name__) + logging.basicConfig(stream=sys.stdout) + logger.setLevel(logging.DEBUG) + + def logger_debug(*args): + return logger.debug(' '.join(isinstance(a, str) + and a or repr(a) for a in args)) + + +@output_impl +class LicenseCsvOutput(OutputPlugin): + + options = [ + PluggableCommandLineOption(('--license-csv',), + type=FileOptionType(mode='w', encoding='utf-8', lazy=True), + metavar='FILE', + help='Write license scan debug output as CSV to FILE.', + help_group=OUTPUT_GROUP, + sort_order=30), + ] + + def is_enabled(self, license_csv, **kwargs): + return license_csv + + def process_codebase(self, codebase, license_csv, **kwargs): + results = self.get_files(codebase, **kwargs) + write_csv(results=results, output_file=license_csv) + + +def write_csv(results, output_file): + results = list(results) + + headers = dict([ + ('license', []), + ]) + + rows = list(flatten_scan(results, headers)) + + ordered_headers = [] + for key_group in headers.values(): + ordered_headers.extend(key_group) + + w = csv.DictWriter(output_file, fieldnames=ordered_headers) + w.writeheader() + + for r in rows: + w.writerow(r) + + +def flatten_scan(scan, headers): + """ + Yield ordered dictionaries of key/values flattening the sequence + data in a single line-separated value and keying always by path, + given a ScanCode `scan` results list. Update the `headers` mapping + sequences with seen keys as a side effect. + """ + seen = set() + + def collect_keys(mapping, key_group): + """Update the headers with new keys.""" + keys = mapping.keys() + headers[key_group].extend(k for k in keys if k not in seen) + seen.update(keys) + + seen = set() + for scanned_file in scan: + path = scanned_file.pop('path') + + # removing any slash at the begening of the path + path = path.lstrip('/') + + # use a trailing slash for directories + if scanned_file.get('type') == 'directory': + continue + + for licensing in scanned_file.get('licenses', []): + matched_rule = licensing['matched_rule'] + lic = dict( + path=path, + score = with_two_decimals(licensing['score']), + start_line = licensing['start_line'], + end_line = licensing['end_line'], + identifier=matched_rule['identifier'], + license_expression=matched_rule['license_expression'], + matcher=matched_rule['matcher'], + rule_length=matched_rule['rule_length'], + matched_length=matched_rule['matched_length'], + match_coverage=with_two_decimals(matched_rule['match_coverage']), + rule_relevance=with_two_decimals(matched_rule['rule_relevance']), + ) + values= tuple(lic.items()) + if values in seen: + continue + else: + seen.add(values) + collect_keys(lic, 'license') + yield lic + +def with_two_decimals(val): + """ + Return a normalized score string with two decimal values + """ + if isinstance(val, (float, int)): + val = '{:.2f}'.format(val) + if not isinstance(val, str): + val = str(val) + return val diff --git a/etc/scripts/licenses/license-csv/setup.cfg b/etc/scripts/licenses/license-csv/setup.cfg new file mode 100644 index 00000000000..7194e5f9bb1 --- /dev/null +++ b/etc/scripts/licenses/license-csv/setup.cfg @@ -0,0 +1,15 @@ +[metadata] +name = scancode-debug-license-csv +version = 0.0.1 +license = Apache-2.0 +description = A plugin for license detection debug output as CSV + +[options] +py_modules = + scancode_debug_license_csv +install_requires = + scancode-toolkit + +[options.entry_points] +scancode_output = + license_csv = scancode_debug_license_csv:LicenseCsvOutput diff --git a/etc/scripts/licenses/license-csv/setup.py b/etc/scripts/licenses/license-csv/setup.py new file mode 100644 index 00000000000..bac24a43d99 --- /dev/null +++ b/etc/scripts/licenses/license-csv/setup.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +import setuptools + +if __name__ == "__main__": + setuptools.setup() From 1aacb99ddd992ac9993283a8df83f2ed825f0b03 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 30 Sep 2022 17:22:07 +0200 Subject: [PATCH 43/54] Add missing ignorables to recent license additions Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/licenses/microchip-products-2018.yml | 4 ++++ src/licensedcode/data/licenses/minpack.yml | 2 ++ src/licensedcode/data/licenses/smsc-non-commercial-2012.yml | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/src/licensedcode/data/licenses/microchip-products-2018.yml b/src/licensedcode/data/licenses/microchip-products-2018.yml index 642d00caefa..f324ba22845 100644 --- a/src/licensedcode/data/licenses/microchip-products-2018.yml +++ b/src/licensedcode/data/licenses/microchip-products-2018.yml @@ -4,3 +4,7 @@ name: Microchip Technology Products 2018 category: Proprietary Free owner: Microchip spdx_license_key: LicenseRef-scancode-microchip-products-2018 +ignorable_copyrights: + - (c) 2018 Microchip Technology Inc. and its subsidiaries +ignorable_holders: + - Microchip Technology Inc. and its subsidiaries diff --git a/src/licensedcode/data/licenses/minpack.yml b/src/licensedcode/data/licenses/minpack.yml index dc911a6c228..e29b6709331 100644 --- a/src/licensedcode/data/licenses/minpack.yml +++ b/src/licensedcode/data/licenses/minpack.yml @@ -11,3 +11,5 @@ text_urls: - http://www.netlib.org/minpack/disclaimer other_urls: - https://gitlab.com/libeigen/eigen/-/blob/master/COPYING.MINPACK +ignorable_authors: + - the University of Chicago diff --git a/src/licensedcode/data/licenses/smsc-non-commercial-2012.yml b/src/licensedcode/data/licenses/smsc-non-commercial-2012.yml index b11a5a28d08..788ab7c6b77 100644 --- a/src/licensedcode/data/licenses/smsc-non-commercial-2012.yml +++ b/src/licensedcode/data/licenses/smsc-non-commercial-2012.yml @@ -4,3 +4,7 @@ name: SMSC Non-Commercial 2012 category: Proprietary Free owner: Microchip spdx_license_key: LicenseRef-scancode-smsc-non-commercial-2012 +ignorable_copyrights: + - Copyright 2012 SMSC +ignorable_holders: + - SMSC From 3714f936beebd7ff45f9cd16dfe0d1460a916784 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 30 Sep 2022 17:22:29 +0200 Subject: [PATCH 44/54] Add new and improved license detection rules Signed-off-by: Philippe Ombredanne --- .../data/rules/apache-2.0_1147.RULE | 2 ++ .../data/rules/apache-2.0_1147.yml | 4 +++ .../apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.RULE | 6 ++++ .../apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.yml | 4 +++ src/licensedcode/data/rules/bsd-new_1194.RULE | 23 +++++++++++++ src/licensedcode/data/rules/bsd-new_1194.yml | 3 ++ src/licensedcode/data/rules/bsd-new_1195.RULE | 1 + src/licensedcode/data/rules/bsd-new_1195.yml | 3 ++ .../bsd-simplified_and_lgpl-2.0-plus_1.RULE | 18 ++++++++++ .../bsd-simplified_and_lgpl-2.0-plus_1.yml | 7 ++++ .../data/rules/commercial-license_79.RULE | 1 + .../data/rules/commercial-license_79.yml | 4 +++ ...cial-license_or_lgpl-2.1_or_gpl-3.0_1.RULE | 15 ++++++++ ...rcial-license_or_lgpl-2.1_or_gpl-3.0_1.yml | 2 ++ .../data/rules/false-positive_272.RULE | 1 + .../data/rules/false-positive_272.yml | 2 ++ .../data/rules/false-positive_275.RULE | 5 +++ .../data/rules/false-positive_275.yml | 2 ++ .../data/rules/false-positive_278.RULE | 1 + .../data/rules/false-positive_278.yml | 2 ++ .../data/rules/false-positive_284.RULE | 1 + .../data/rules/false-positive_284.yml | 2 ++ .../data/rules/false-positive_286.RULE | 1 + .../data/rules/false-positive_286.yml | 2 ++ .../data/rules/false-positive_307.RULE | 1 + .../data/rules/false-positive_307.yml | 2 ++ .../data/rules/false-positive_312.RULE | 1 + .../data/rules/false-positive_312.yml | 2 ++ .../data/rules/false-positive_313.RULE | 1 + .../data/rules/false-positive_313.yml | 2 ++ .../data/rules/false-positive_315.RULE | 1 + .../data/rules/false-positive_315.yml | 2 ++ .../data/rules/false-positive_318.RULE | 1 + .../data/rules/false-positive_318.yml | 2 ++ .../data/rules/false-positive_322.RULE | 1 + .../data/rules/false-positive_322.yml | 2 ++ .../data/rules/false-positive_324.RULE | 1 + .../data/rules/false-positive_324.yml | 2 ++ .../data/rules/false-positive_326.RULE | 1 + .../data/rules/false-positive_326.yml | 2 ++ .../data/rules/false-positive_332.RULE | 1 + .../data/rules/false-positive_332.yml | 2 ++ .../data/rules/false-positive_336.RULE | 1 + .../data/rules/false-positive_336.yml | 2 ++ .../data/rules/false-positive_342.RULE | 1 + .../data/rules/false-positive_342.yml | 2 ++ .../data/rules/false-positive_343.RULE | 2 ++ .../data/rules/false-positive_343.yml | 2 ++ .../data/rules/false-positive_345.RULE | 1 + .../data/rules/false-positive_345.yml | 2 ++ .../data/rules/false-positive_352.RULE | 1 + .../data/rules/false-positive_352.yml | 2 ++ .../data/rules/false-positive_367.RULE | 1 + .../data/rules/false-positive_367.yml | 2 ++ .../data/rules/false-positive_372.RULE | 1 + .../data/rules/false-positive_372.yml | 2 ++ .../data/rules/false-positive_380.RULE | 1 + .../data/rules/false-positive_380.yml | 2 ++ .../data/rules/false-positive_381.RULE | 1 + .../data/rules/false-positive_381.yml | 2 ++ .../data/rules/false-positive_386.RULE | 1 + .../data/rules/false-positive_386.yml | 2 ++ .../data/rules/false-positive_394.RULE | 1 + .../data/rules/false-positive_394.yml | 2 ++ .../data/rules/false-positive_402.RULE | 2 ++ .../data/rules/false-positive_402.yml | 2 ++ .../data/rules/false-positive_404.RULE | 2 ++ .../data/rules/false-positive_404.yml | 2 ++ .../data/rules/gpl-1.0-plus_568.RULE | 2 ++ .../data/rules/gpl-1.0-plus_568.yml | 4 +++ .../data/rules/gpl-1.0-plus_569.RULE | 1 + .../data/rules/gpl-1.0-plus_569.yml | 4 +++ .../gpl-1.0-plus_and_lgpl-2.1-plus_2.RULE | 4 +-- .../data/rules/gpl-2.0-plus_1076.RULE | 13 +++++++ .../data/rules/gpl-2.0-plus_1076.yml | 2 ++ .../data/rules/gpl-2.0-plus_1077.RULE | 13 +++++++ .../data/rules/gpl-2.0-plus_1077.yml | 3 ++ .../data/rules/gpl-2.0-plus_1078.RULE | 13 +++++++ .../data/rules/gpl-2.0-plus_1078.yml | 2 ++ .../data/rules/gpl-2.0-plus_1079.RULE | 14 ++++++++ .../data/rules/gpl-2.0-plus_1079.yml | 4 +++ .../data/rules/gpl-2.0-plus_1080.RULE | 3 ++ .../data/rules/gpl-2.0-plus_1080.yml | 4 +++ .../data/rules/gpl-2.0-plus_1081.RULE | 2 ++ .../data/rules/gpl-2.0-plus_1081.yml | 4 +++ .../data/rules/gpl-2.0-plus_1082.RULE | 13 +++++++ .../data/rules/gpl-2.0-plus_1082.yml | 4 +++ .../data/rules/gpl-2.0-plus_1083.RULE | 16 +++++++++ .../data/rules/gpl-2.0-plus_1083.yml | 2 ++ .../data/rules/gpl-2.0-plus_1084.RULE | 14 ++++++++ .../data/rules/gpl-2.0-plus_1084.yml | 2 ++ src/licensedcode/data/rules/gpl-2.0_349.RULE | 4 +-- ...-2.0-plus_with_u-boot-exception-2.0_1.RULE | 12 +++++++ ...l-2.0-plus_with_u-boot-exception-2.0_1.yml | 2 ++ ...-2.0-plus_with_u-boot-exception-2.0_2.RULE | 10 ++++++ ...l-2.0-plus_with_u-boot-exception-2.0_2.yml | 2 ++ ...-2.0-plus_with_u-boot-exception-2.0_3.RULE | 5 +++ ...l-2.0-plus_with_u-boot-exception-2.0_3.yml | 2 ++ src/licensedcode/data/rules/ijg_41.RULE | 34 +++++++++++++++++++ src/licensedcode/data/rules/ijg_41.yml | 6 ++++ .../data/rules/lgpl-2.1-plus_449.RULE | 13 +++++++ .../data/rules/lgpl-2.1-plus_449.yml | 2 ++ .../data/rules/lgpl-2.1-plus_450.RULE | 13 +++++++ .../data/rules/lgpl-2.1-plus_450.yml | 3 ++ .../data/rules/lgpl-2.1-plus_451.RULE | 13 +++++++ .../data/rules/lgpl-2.1-plus_451.yml | 2 ++ .../data/rules/lgpl-2.1-plus_452.RULE | 13 +++++++ .../data/rules/lgpl-2.1-plus_452.yml | 2 ++ .../data/rules/lgpl-2.1-plus_453.RULE | 13 +++++++ .../data/rules/lgpl-2.1-plus_453.yml | 2 ++ src/licensedcode/data/rules/lgpl-2.1_429.RULE | 13 +++++++ src/licensedcode/data/rules/lgpl-2.1_429.yml | 4 +++ src/licensedcode/data/rules/lgpl-3.0_289.RULE | 2 +- src/licensedcode/data/rules/mit_1222.RULE | 16 +++++++++ src/licensedcode/data/rules/mit_1222.yml | 3 ++ src/licensedcode/data/rules/mit_1223.RULE | 21 ++++++++++++ src/licensedcode/data/rules/mit_1223.yml | 2 ++ .../rules/openssl-exception-gpl-2.0_4.RULE | 10 ++++++ .../rules/openssl-exception-gpl-2.0_4.yml | 2 ++ .../rules/openssl-exception-gpl-2.0_5.RULE | 10 ++++++ .../rules/openssl-exception-gpl-2.0_5.yml | 2 ++ .../data/rules/proprietary-license_738.RULE | 4 +-- ...ary-license_and_lgpl-2.1_or_gpl-2.0_1.RULE | 3 ++ ...tary-license_and_lgpl-2.1_or_gpl-2.0_1.yml | 2 ++ .../data/rules/public-domain_461.RULE | 1 + .../data/rules/public-domain_461.yml | 3 ++ 126 files changed, 568 insertions(+), 7 deletions(-) create mode 100644 src/licensedcode/data/rules/apache-2.0_1147.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_1147.yml create mode 100644 src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.RULE create mode 100644 src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.yml create mode 100644 src/licensedcode/data/rules/bsd-new_1194.RULE create mode 100644 src/licensedcode/data/rules/bsd-new_1194.yml create mode 100644 src/licensedcode/data/rules/bsd-new_1195.RULE create mode 100644 src/licensedcode/data/rules/bsd-new_1195.yml create mode 100644 src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.RULE create mode 100644 src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.yml create mode 100644 src/licensedcode/data/rules/commercial-license_79.RULE create mode 100644 src/licensedcode/data/rules/commercial-license_79.yml create mode 100644 src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.RULE create mode 100644 src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.yml create mode 100644 src/licensedcode/data/rules/false-positive_272.RULE create mode 100644 src/licensedcode/data/rules/false-positive_272.yml create mode 100644 src/licensedcode/data/rules/false-positive_275.RULE create mode 100644 src/licensedcode/data/rules/false-positive_275.yml create mode 100644 src/licensedcode/data/rules/false-positive_278.RULE create mode 100644 src/licensedcode/data/rules/false-positive_278.yml create mode 100644 src/licensedcode/data/rules/false-positive_284.RULE create mode 100644 src/licensedcode/data/rules/false-positive_284.yml create mode 100644 src/licensedcode/data/rules/false-positive_286.RULE create mode 100644 src/licensedcode/data/rules/false-positive_286.yml create mode 100644 src/licensedcode/data/rules/false-positive_307.RULE create mode 100644 src/licensedcode/data/rules/false-positive_307.yml create mode 100644 src/licensedcode/data/rules/false-positive_312.RULE create mode 100644 src/licensedcode/data/rules/false-positive_312.yml create mode 100644 src/licensedcode/data/rules/false-positive_313.RULE create mode 100644 src/licensedcode/data/rules/false-positive_313.yml create mode 100644 src/licensedcode/data/rules/false-positive_315.RULE create mode 100644 src/licensedcode/data/rules/false-positive_315.yml create mode 100644 src/licensedcode/data/rules/false-positive_318.RULE create mode 100644 src/licensedcode/data/rules/false-positive_318.yml create mode 100644 src/licensedcode/data/rules/false-positive_322.RULE create mode 100644 src/licensedcode/data/rules/false-positive_322.yml create mode 100644 src/licensedcode/data/rules/false-positive_324.RULE create mode 100644 src/licensedcode/data/rules/false-positive_324.yml create mode 100644 src/licensedcode/data/rules/false-positive_326.RULE create mode 100644 src/licensedcode/data/rules/false-positive_326.yml create mode 100644 src/licensedcode/data/rules/false-positive_332.RULE create mode 100644 src/licensedcode/data/rules/false-positive_332.yml create mode 100644 src/licensedcode/data/rules/false-positive_336.RULE create mode 100644 src/licensedcode/data/rules/false-positive_336.yml create mode 100644 src/licensedcode/data/rules/false-positive_342.RULE create mode 100644 src/licensedcode/data/rules/false-positive_342.yml create mode 100644 src/licensedcode/data/rules/false-positive_343.RULE create mode 100644 src/licensedcode/data/rules/false-positive_343.yml create mode 100644 src/licensedcode/data/rules/false-positive_345.RULE create mode 100644 src/licensedcode/data/rules/false-positive_345.yml create mode 100644 src/licensedcode/data/rules/false-positive_352.RULE create mode 100644 src/licensedcode/data/rules/false-positive_352.yml create mode 100644 src/licensedcode/data/rules/false-positive_367.RULE create mode 100644 src/licensedcode/data/rules/false-positive_367.yml create mode 100644 src/licensedcode/data/rules/false-positive_372.RULE create mode 100644 src/licensedcode/data/rules/false-positive_372.yml create mode 100644 src/licensedcode/data/rules/false-positive_380.RULE create mode 100644 src/licensedcode/data/rules/false-positive_380.yml create mode 100644 src/licensedcode/data/rules/false-positive_381.RULE create mode 100644 src/licensedcode/data/rules/false-positive_381.yml create mode 100644 src/licensedcode/data/rules/false-positive_386.RULE create mode 100644 src/licensedcode/data/rules/false-positive_386.yml create mode 100644 src/licensedcode/data/rules/false-positive_394.RULE create mode 100644 src/licensedcode/data/rules/false-positive_394.yml create mode 100644 src/licensedcode/data/rules/false-positive_402.RULE create mode 100644 src/licensedcode/data/rules/false-positive_402.yml create mode 100644 src/licensedcode/data/rules/false-positive_404.RULE create mode 100644 src/licensedcode/data/rules/false-positive_404.yml create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_568.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_568.yml create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_569.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_569.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1076.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1076.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1077.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1077.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1078.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1078.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1079.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1079.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1080.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1080.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1081.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1081.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1082.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1082.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1083.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1083.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1084.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0-plus_1084.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.yml create mode 100644 src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.RULE create mode 100644 src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.yml create mode 100644 src/licensedcode/data/rules/ijg_41.RULE create mode 100644 src/licensedcode/data/rules/ijg_41.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_449.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_449.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_450.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_450.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_451.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_451.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_452.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_452.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_453.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_453.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1_429.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1_429.yml create mode 100644 src/licensedcode/data/rules/mit_1222.RULE create mode 100644 src/licensedcode/data/rules/mit_1222.yml create mode 100644 src/licensedcode/data/rules/mit_1223.RULE create mode 100644 src/licensedcode/data/rules/mit_1223.yml create mode 100644 src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.RULE create mode 100644 src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.yml create mode 100644 src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.RULE create mode 100644 src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.yml create mode 100644 src/licensedcode/data/rules/public-domain_461.RULE create mode 100644 src/licensedcode/data/rules/public-domain_461.yml diff --git a/src/licensedcode/data/rules/apache-2.0_1147.RULE b/src/licensedcode/data/rules/apache-2.0_1147.RULE new file mode 100644 index 00000000000..6136b78335d --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1147.RULE @@ -0,0 +1,2 @@ +libraries are under the Apache License 2.0 +(see @url{http://www.apache.org/licenses/LICENSE-2.0} for details) \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_1147.yml b/src/licensedcode/data/rules/apache-2.0_1147.yml new file mode 100644 index 00000000000..ebb6d1a4bee --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_1147.yml @@ -0,0 +1,4 @@ +license_expression: apache-2.0 +is_license_notice: yes +ignorable_urls: + - http://www.apache.org/licenses/LICENSE-2.0 diff --git a/src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.RULE b/src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.RULE new file mode 100644 index 00000000000..b3e1787cefb --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.RULE @@ -0,0 +1,6 @@ +libraries are under the Apache License 2.0 +(see @url{http://www.apache.org/licenses/LICENSE-2.0} for details), which is +incompatible to the LGPL version 2.1 and GPL version 2. You have to +upgrade FFmpeg's license to LGPL version 3 (or if you have enabled +GPL components, GPL version 3) by passing @code{--enable-version3} to configure in +order to use it. \ No newline at end of file diff --git a/src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.yml b/src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.yml new file mode 100644 index 00000000000..3ee4804dfc3 --- /dev/null +++ b/src/licensedcode/data/rules/apache-2.0_and_lgpl-3.0_or_gpl-3.0_1.yml @@ -0,0 +1,4 @@ +license_expression: apache-2.0 AND (lgpl-3.0 OR gpl-3.0) +is_license_notice: yes +ignorable_urls: + - http://www.apache.org/licenses/LICENSE-2.0 diff --git a/src/licensedcode/data/rules/bsd-new_1194.RULE b/src/licensedcode/data/rules/bsd-new_1194.RULE new file mode 100644 index 00000000000..75bff720afc --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1194.RULE @@ -0,0 +1,23 @@ +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. +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. +3. Neither the name of the MIPS Technologies, Inc., nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE MIPS TECHNOLOGIES, INC. ``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 THE MIPS TECHNOLOGIES, INC. 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/rules/bsd-new_1194.yml b/src/licensedcode/data/rules/bsd-new_1194.yml new file mode 100644 index 00000000000..a98e3323c38 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1194.yml @@ -0,0 +1,3 @@ +license_expression: bsd-new +is_license_text: yes +notes: Seen in ffmpeg diff --git a/src/licensedcode/data/rules/bsd-new_1195.RULE b/src/licensedcode/data/rules/bsd-new_1195.RULE new file mode 100644 index 00000000000..71baa3f8d6c --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1195.RULE @@ -0,0 +1 @@ +and on BSD-licensed SHA-2 code \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-new_1195.yml b/src/licensedcode/data/rules/bsd-new_1195.yml new file mode 100644 index 00000000000..67d99f838ff --- /dev/null +++ b/src/licensedcode/data/rules/bsd-new_1195.yml @@ -0,0 +1,3 @@ +license_expression: bsd-new +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.RULE b/src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.RULE new file mode 100644 index 00000000000..58da077d107 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.RULE @@ -0,0 +1,18 @@ +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. +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 library is distributed in the hope that i will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.yml b/src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.yml new file mode 100644 index 00000000000..00856f97932 --- /dev/null +++ b/src/licensedcode/data/rules/bsd-simplified_and_lgpl-2.0-plus_1.yml @@ -0,0 +1,7 @@ +license_expression: bsd-simplified AND lgpl-2.0-plus +is_license_notice: yes +relevance: 95 +referenced_filenames: + - COPYING.LIB +notes: seen in qtwebkit Qt_5.3.2/qtwebkit/Source/WebCore/platform/text/win/TextCodecWin.cpp + and the text is weirdly damaged combo of bsd and lgpl diff --git a/src/licensedcode/data/rules/commercial-license_79.RULE b/src/licensedcode/data/rules/commercial-license_79.RULE new file mode 100644 index 00000000000..532295ab047 --- /dev/null +++ b/src/licensedcode/data/rules/commercial-license_79.RULE @@ -0,0 +1 @@ +{{to purchase a license}} \ No newline at end of file diff --git a/src/licensedcode/data/rules/commercial-license_79.yml b/src/licensedcode/data/rules/commercial-license_79.yml new file mode 100644 index 00000000000..4783fd679b1 --- /dev/null +++ b/src/licensedcode/data/rules/commercial-license_79.yml @@ -0,0 +1,4 @@ +license_expression: commercial-license +is_license_reference: yes +is_continuous: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.RULE b/src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.RULE new file mode 100644 index 00000000000..e98cdd7531e --- /dev/null +++ b/src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.RULE @@ -0,0 +1,15 @@ +" Qt is available under three different licensing options designed " +"to accommodate the needs of our various users. " +" Qt licensed under our commercial license agreement is appropriate " +"for development of proprietary/commercial software where you do not " +"want to share any source code with third parties or otherwise cannot " +"comply with the terms of the GNU LGPL version 2.1 or GNU GPL version " +"3.0. " +" Qt licensed under the GNU LGPL version 2.1 is appropriate for the " +"development of Qt applications provided you can comply with the terms " +"and conditions of the GNU LGPL version 2.1. " +" Qt licensed under the GNU General Public License version 3.0 is " +"appropriate for the development of Qt applications where you wish to " +"use such applications in combination with software subject to the " +"terms of the GNU GPL version 3.0 or where you are otherwise willing " +"to comply with the terms of the GNU GPL version 3.0. " \ No newline at end of file diff --git a/src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.yml b/src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.yml new file mode 100644 index 00000000000..8ee5c018c55 --- /dev/null +++ b/src/licensedcode/data/rules/commercial-license_or_lgpl-2.1_or_gpl-3.0_1.yml @@ -0,0 +1,2 @@ +license_expression: commercial-license OR lgpl-2.1 OR gpl-3.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/false-positive_272.RULE b/src/licensedcode/data/rules/false-positive_272.RULE new file mode 100644 index 00000000000..7e6dccd0c74 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_272.RULE @@ -0,0 +1 @@ +mpl2_event \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_272.yml b/src/licensedcode/data/rules/false-positive_272.yml new file mode 100644 index 00000000000..104dd192014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_272.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: not a license note https://ffmpeg.org/doxygen/5.0/libavcodec_2mpl2dec_8c_source.html diff --git a/src/licensedcode/data/rules/false-positive_275.RULE b/src/licensedcode/data/rules/false-positive_275.RULE new file mode 100644 index 00000000000..1005995bcca --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_275.RULE @@ -0,0 +1,5 @@ +DEBUG +formats.txt +FTL.TXT +GPL.TXT +INSTALL \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_275.yml b/src/licensedcode/data/rules/false-positive_275.yml new file mode 100644 index 00000000000..94003d03565 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_275.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: a list of filenames, not a license notice diff --git a/src/licensedcode/data/rules/false-positive_278.RULE b/src/licensedcode/data/rules/false-positive_278.RULE new file mode 100644 index 00000000000..9cbfa9e0808 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_278.RULE @@ -0,0 +1 @@ +You have already accepted the terms of the license." << endl << endl; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_278.yml b/src/licensedcode/data/rules/false-positive_278.yml new file mode 100644 index 00000000000..862dbe2a022 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_278.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: a comment/string about license diff --git a/src/licensedcode/data/rules/false-positive_284.RULE b/src/licensedcode/data/rules/false-positive_284.RULE new file mode 100644 index 00000000000..7459b43a43a --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_284.RULE @@ -0,0 +1 @@ +haveGpl3 = QFile::exists(orgLicenseFile + "/LICENSE.GPL"); \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_284.yml b/src/licensedcode/data/rules/false-positive_284.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_284.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_286.RULE b/src/licensedcode/data/rules/false-positive_286.RULE new file mode 100644 index 00000000000..c4328fa0014 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_286.RULE @@ -0,0 +1 @@ +theLicense = "GNU Lesser General Public License (LGPL) version 2.1"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_286.yml b/src/licensedcode/data/rules/false-positive_286.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_286.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_307.RULE b/src/licensedcode/data/rules/false-positive_307.RULE new file mode 100644 index 00000000000..6b5935e7946 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_307.RULE @@ -0,0 +1 @@ +theLicense += "\nor the GNU General Public License (GPL) version 3"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_307.yml b/src/licensedcode/data/rules/false-positive_307.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_307.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_312.RULE b/src/licensedcode/data/rules/false-positive_312.RULE new file mode 100644 index 00000000000..dab1add6ad4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_312.RULE @@ -0,0 +1 @@ +cout << "You are licensed to use this software under the terms of" << endl \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_312.yml b/src/licensedcode/data/rules/false-positive_312.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_312.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_313.RULE b/src/licensedcode/data/rules/false-positive_313.RULE new file mode 100644 index 00000000000..90475ec6c85 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_313.RULE @@ -0,0 +1 @@ +cout << "Type '3' to view the GNU General Public License version 3 (GPLv3)." << endl; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_313.yml b/src/licensedcode/data/rules/false-positive_313.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_313.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_315.RULE b/src/licensedcode/data/rules/false-positive_315.RULE new file mode 100644 index 00000000000..f50b68ea366 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_315.RULE @@ -0,0 +1 @@ +cout << "Type 'L' to view the Lesser GNU General Public License version 2.1 (LGPLv2.1)." << endl; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_315.yml b/src/licensedcode/data/rules/false-positive_315.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_315.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_318.RULE b/src/licensedcode/data/rules/false-positive_318.RULE new file mode 100644 index 00000000000..6a3eadcc9b9 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_318.RULE @@ -0,0 +1 @@ +licenseFile = orgLicenseFile + "/LICENSE.GPL"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_318.yml b/src/licensedcode/data/rules/false-positive_318.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_318.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_322.RULE b/src/licensedcode/data/rules/false-positive_322.RULE new file mode 100644 index 00000000000..856f75e70e5 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_322.RULE @@ -0,0 +1 @@ +licenseFile = orgLicenseFile + "/LICENSE.LGPL"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_322.yml b/src/licensedcode/data/rules/false-positive_322.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_322.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_324.RULE b/src/licensedcode/data/rules/false-positive_324.RULE new file mode 100644 index 00000000000..bd1f25b7b7c --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_324.RULE @@ -0,0 +1 @@ +dictionary["LICENSE FILE"] + "/LICENSE.GPL") \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_324.yml b/src/licensedcode/data/rules/false-positive_324.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_324.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_326.RULE b/src/licensedcode/data/rules/false-positive_326.RULE new file mode 100644 index 00000000000..b9ba66f8133 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_326.RULE @@ -0,0 +1 @@ +dictionary["LICENSE FILE"] + "/LICENSE.LGPL"); \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_326.yml b/src/licensedcode/data/rules/false-positive_326.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_326.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_332.RULE b/src/licensedcode/data/rules/false-positive_332.RULE new file mode 100644 index 00000000000..e92c162043a --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_332.RULE @@ -0,0 +1 @@ +No Open Source? Just display the commercial license right away \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_332.yml b/src/licensedcode/data/rules/false-positive_332.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_332.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_336.RULE b/src/licensedcode/data/rules/false-positive_336.RULE new file mode 100644 index 00000000000..c77c6bc665f --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_336.RULE @@ -0,0 +1 @@ +dictionary["LICENSEE"] = "Open Source"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_336.yml b/src/licensedcode/data/rules/false-positive_336.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_336.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_342.RULE b/src/licensedcode/data/rules/false-positive_342.RULE new file mode 100644 index 00000000000..d73c2f000ec --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_342.RULE @@ -0,0 +1 @@ +Cannot find the GPL license files! Please download the Open Source version of the library. \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_342.yml b/src/licensedcode/data/rules/false-positive_342.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_342.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_343.RULE b/src/licensedcode/data/rules/false-positive_343.RULE new file mode 100644 index 00000000000..40ded470f7d --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_343.RULE @@ -0,0 +1,2 @@ +theLicense = "GNU Lesser General Public License (LGPL) version 2.1" + "\nor the GNU Lesser General Public License (LGPL) version 3"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_343.yml b/src/licensedcode/data/rules/false-positive_343.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_343.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_345.RULE b/src/licensedcode/data/rules/false-positive_345.RULE new file mode 100644 index 00000000000..71263608d10 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_345.RULE @@ -0,0 +1 @@ +theLicense = "GNU Lesser General Public License (LGPL) version 3"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_345.yml b/src/licensedcode/data/rules/false-positive_345.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_345.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_352.RULE b/src/licensedcode/data/rules/false-positive_352.RULE new file mode 100644 index 00000000000..5017248973e --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_352.RULE @@ -0,0 +1 @@ +cout << "Type '3' to view the Lesser GNU General Public License version 3 (LGPLv3)." \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_352.yml b/src/licensedcode/data/rules/false-positive_352.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_352.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_367.RULE b/src/licensedcode/data/rules/false-positive_367.RULE new file mode 100644 index 00000000000..3593c2ffebf --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_367.RULE @@ -0,0 +1 @@ +cout << "Type 'L' to view the Lesser GNU General Public License version 2.1 (LGPLv2.1) \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_367.yml b/src/licensedcode/data/rules/false-positive_367.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_367.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_372.RULE b/src/licensedcode/data/rules/false-positive_372.RULE new file mode 100644 index 00000000000..c262d648364 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_372.RULE @@ -0,0 +1 @@ +licenseFile = orgLicenseFile + "/LICENSE.LGPLv3"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_372.yml b/src/licensedcode/data/rules/false-positive_372.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_372.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_380.RULE b/src/licensedcode/data/rules/false-positive_380.RULE new file mode 100644 index 00000000000..e040df87df6 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_380.RULE @@ -0,0 +1 @@ +licenseFile = orgLicenseFile + "/LICENSE.LGPLv21"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_380.yml b/src/licensedcode/data/rules/false-positive_380.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_380.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_381.RULE b/src/licensedcode/data/rules/false-positive_381.RULE new file mode 100644 index 00000000000..72173360512 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_381.RULE @@ -0,0 +1 @@ +dictionary["LICENSE FILE"] + "/LICENSE.LGPLv3 \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_381.yml b/src/licensedcode/data/rules/false-positive_381.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_381.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_386.RULE b/src/licensedcode/data/rules/false-positive_386.RULE new file mode 100644 index 00000000000..1eb65d4f40b --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_386.RULE @@ -0,0 +1 @@ +dictionary["LICENSE FILE"] + "/LICENSE.LGPLv21" \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_386.yml b/src/licensedcode/data/rules/false-positive_386.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_386.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_394.RULE b/src/licensedcode/data/rules/false-positive_394.RULE new file mode 100644 index 00000000000..9e09642d4f0 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_394.RULE @@ -0,0 +1 @@ +Cannot find the GPL license files! Please download the Open Source version \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_394.yml b/src/licensedcode/data/rules/false-positive_394.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_394.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_402.RULE b/src/licensedcode/data/rules/false-positive_402.RULE new file mode 100644 index 00000000000..7d9fddc010c --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_402.RULE @@ -0,0 +1,2 @@ +theLicense = "GNU Lesser General Public License (LGPL) version 2.1" +or the GNU Lesser General Public License (LGPL) version 3"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_402.yml b/src/licensedcode/data/rules/false-positive_402.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_402.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/false-positive_404.RULE b/src/licensedcode/data/rules/false-positive_404.RULE new file mode 100644 index 00000000000..7e6a47d35d7 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_404.RULE @@ -0,0 +1,2 @@ +else { + theLicense = "GNU Lesser General Public License (LGPL) version 3"; \ No newline at end of file diff --git a/src/licensedcode/data/rules/false-positive_404.yml b/src/licensedcode/data/rules/false-positive_404.yml new file mode 100644 index 00000000000..2829756d4a4 --- /dev/null +++ b/src/licensedcode/data/rules/false-positive_404.yml @@ -0,0 +1,2 @@ +is_false_positive: yes +notes: code about license, not a license diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_568.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_568.RULE new file mode 100644 index 00000000000..ad64edfe9c8 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_568.RULE @@ -0,0 +1,2 @@ +License +This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License; see www.gnu.org/copyleft/gpl.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_568.yml b/src/licensedcode/data/rules/gpl-1.0-plus_568.yml new file mode 100644 index 00000000000..1cdb0a6fd67 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_568.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/copyleft/gpl.html diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_569.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_569.RULE new file mode 100644 index 00000000000..8ad7ba7a13a --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_569.RULE @@ -0,0 +1 @@ +This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License; see www.gnu.org/copyleft/gpl.html \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_569.yml b/src/licensedcode/data/rules/gpl-1.0-plus_569.yml new file mode 100644 index 00000000000..1cdb0a6fd67 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_569.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/copyleft/gpl.html diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_and_lgpl-2.1-plus_2.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_and_lgpl-2.1-plus_2.RULE index 1b99546a343..540b6d04239 100644 --- a/src/licensedcode/data/rules/gpl-1.0-plus_and_lgpl-2.1-plus_2.RULE +++ b/src/licensedcode/data/rules/gpl-1.0-plus_and_lgpl-2.1-plus_2.RULE @@ -1,5 +1,5 @@ This software is distributed under the following licenses: -GNU General Public License (GPL) +{{GNU General Public License (GPL) GNU Lesser General Public (LGPL) GNU Lesser General Public (LGPL) -GNU Lesser General Public (LGPL) +GNU Lesser General Public (LGPL)}} diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1076.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1076.RULE new file mode 100644 index 00000000000..dbca36d0466 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1076.RULE @@ -0,0 +1,13 @@ +FFmpeg is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +FFmpeg is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with FFmpeg; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1076.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1076.yml new file mode 100644 index 00000000000..4dd63d8726f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1076.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1077.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1077.RULE new file mode 100644 index 00000000000..c134f88535b --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1077.RULE @@ -0,0 +1,13 @@ +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +This program is distributed in the hope that it will be useful, but +OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1077.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1077.yml new file mode 100644 index 00000000000..6bece023747 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1077.yml @@ -0,0 +1,3 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +notes: typo in OUT rather than WITHOUT diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1078.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1078.RULE new file mode 100644 index 00000000000..2b481d0a18a --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1078.RULE @@ -0,0 +1,13 @@ +is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + + is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with ; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1078.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1078.yml new file mode 100644 index 00000000000..4dd63d8726f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1078.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1079.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1079.RULE new file mode 100644 index 00000000000..5d4a9caeb52 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1079.RULE @@ -0,0 +1,14 @@ +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1079.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1079.yml new file mode 100644 index 00000000000..e061fd41842 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1079.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +referenced_filenames: + - COPYING diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1080.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1080.RULE new file mode 100644 index 00000000000..54e5c78ace6 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1080.RULE @@ -0,0 +1,3 @@ +licensed under the GNU General Public License Version 2 or later +(see @url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html} for details), +you must upgrade FFmpeg's license to GPL in order to use it. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1080.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1080.yml new file mode 100644 index 00000000000..9a1cfcefbe5 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1080.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1081.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1081.RULE new file mode 100644 index 00000000000..4d4dd6f4542 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1081.RULE @@ -0,0 +1,2 @@ +licensed under the GNU General Public License Version 2 or later +(see @url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html} for details), \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1081.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1081.yml new file mode 100644 index 00000000000..9a1cfcefbe5 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1081.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1082.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1082.RULE new file mode 100644 index 00000000000..5d75bfe3e2c --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1082.RULE @@ -0,0 +1,13 @@ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Perl; see the file COPYING. If not, write to the +Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1082.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1082.yml new file mode 100644 index 00000000000..e061fd41842 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1082.yml @@ -0,0 +1,4 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes +referenced_filenames: + - COPYING diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1083.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1083.RULE new file mode 100644 index 00000000000..a7f0ee03e2a --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1083.RULE @@ -0,0 +1,16 @@ +LICENSE + + distributed under the terms of the GNU General Public +License as published by the Free Software Foundation; either version +2, or (at your option) any later version. + +This means it is distributed in the hope that it will be useful, but +I; without even the implied warranty of +I or I. See the +GNU General Public License for more details. + +Since Perl scripts are only compiled at runtime, and simply calling + does I bring your program under the GPL, the only +real restriction is that you can't use in an +binary-only distribution produced with C (unless you also +provide source code). \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1083.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1083.yml new file mode 100644 index 00000000000..4dd63d8726f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1083.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1084.RULE b/src/licensedcode/data/rules/gpl-2.0-plus_1084.RULE new file mode 100644 index 00000000000..ea9ec9b40a9 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1084.RULE @@ -0,0 +1,14 @@ +distributed under the terms of the GNU General Public +License as published by the Free Software Foundation; either version +2, or (at your option) any later version. + +This means it is distributed in the hope that it will be useful, but +I; without even the implied warranty of +I or I. See the +GNU General Public License for more details. + +Since Perl scripts are only compiled at runtime, and simply calling + does I bring your program under the GPL, the only +real restriction is that you can't use in an +binary-only distribution produced with C (unless you also +provide source code). \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0-plus_1084.yml b/src/licensedcode/data/rules/gpl-2.0-plus_1084.yml new file mode 100644 index 00000000000..4dd63d8726f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0-plus_1084.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0_349.RULE b/src/licensedcode/data/rules/gpl-2.0_349.RULE index 70fb8c5ce20..4efc7417d38 100644 --- a/src/licensedcode/data/rules/gpl-2.0_349.RULE +++ b/src/licensedcode/data/rules/gpl-2.0_349.RULE @@ -1,3 +1,3 @@ This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License ("GPL") -version 2, as published by the Free Software Foundation. +modify it under the terms of the {{GNU General Public License ("GPL") +version 2}}, as published by the Free Software Foundation. diff --git a/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.RULE b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.RULE new file mode 100644 index 00000000000..72f895518d9 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.RULE @@ -0,0 +1,12 @@ +GPL License Exception: + +Even though U-Boot in general is covered by the GPL-2.0/GPL-2.0+, +this does *not* cover the so-called "standalone" applications that +use U-Boot services by means of the jump table provided by U-Boot +exactly for this purpose - this is merely considered normal use of +U-Boot, and does *not* fall under the heading of "derived work". + + The header files "include/image.h" and "arch/*/include/asm/u-boot.h" +define interfaces to U-Boot. Including these (unmodified) header +files in another file is considered normal use of U-Boot, and does +*not* fall under the heading of "derived work". \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.yml b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.yml new file mode 100644 index 00000000000..edd4d7cf10f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_1.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0 WITH u-boot-exception-2.0 AND gpl-2.0-plus WITH u-boot-exception-2.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.RULE b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.RULE new file mode 100644 index 00000000000..463a1053554 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.RULE @@ -0,0 +1,10 @@ +Even though U-Boot in general is covered by the GPL-2.0/GPL-2.0+, +this does *not* cover the so-called "standalone" applications that +use U-Boot services by means of the jump table provided by U-Boot +exactly for this purpose - this is merely considered normal use of +U-Boot, and does *not* fall under the heading of "derived work". + + The header files "include/image.h" and "arch/*/include/asm/u-boot.h" +define interfaces to U-Boot. Including these (unmodified) header +files in another file is considered normal use of U-Boot, and does +*not* fall under the heading of "derived work". \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.yml b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.yml new file mode 100644 index 00000000000..edd4d7cf10f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_2.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0 WITH u-boot-exception-2.0 AND gpl-2.0-plus WITH u-boot-exception-2.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.RULE b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.RULE new file mode 100644 index 00000000000..d62b073b651 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.RULE @@ -0,0 +1,5 @@ +Even though U-Boot in general is covered by the GPL-2.0/GPL-2.0+, +this does *not* cover the so-called "standalone" applications that +use U-Boot services by means of the jump table provided by U-Boot +exactly for this purpose - this is merely considered normal use of +U-Boot, and does *not* fall under the heading of "derived work". \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.yml b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.yml new file mode 100644 index 00000000000..edd4d7cf10f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-2.0_with_u-boot-exception-2.0_and_gpl-2.0-plus_with_u-boot-exception-2.0_3.yml @@ -0,0 +1,2 @@ +license_expression: gpl-2.0 WITH u-boot-exception-2.0 AND gpl-2.0-plus WITH u-boot-exception-2.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/ijg_41.RULE b/src/licensedcode/data/rules/ijg_41.RULE new file mode 100644 index 00000000000..693fc312d4d --- /dev/null +++ b/src/licensedcode/data/rules/ijg_41.RULE @@ -0,0 +1,34 @@ +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and +you, its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1994-1996, Thomas G. Lane. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to +these conditions: +(1) If any part of the source code for this software is distributed, then +this README file must be included, with this copyright and no-warranty +notice unaltered; and any additions, deletions, or changes to the original +files must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work +of the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG +code, not just to the unmodified library. If you use our work, you ought +to acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company +name in advertising or publicity relating to this software or products +derived from it. This software may be referred to only as "the Independent +JPEG Group's software". + +We specifically permit and encourage the use of this software as the basis +of commercial products, provided that all warranty or liability claims are +assumed by the product vendor. \ No newline at end of file diff --git a/src/licensedcode/data/rules/ijg_41.yml b/src/licensedcode/data/rules/ijg_41.yml new file mode 100644 index 00000000000..05c5332658a --- /dev/null +++ b/src/licensedcode/data/rules/ijg_41.yml @@ -0,0 +1,6 @@ +license_expression: ijg +is_license_text: yes +ignorable_copyrights: + - copyright (c) 1994-1996, Thomas G. Lane +ignorable_holders: + - Thomas G. Lane diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_449.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_449.RULE new file mode 100644 index 00000000000..595e1db86fa --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_449.RULE @@ -0,0 +1,13 @@ +FFmpeg is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +FFmpeg is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with FFmpeg; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_449.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_449.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_449.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_450.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_450.RULE new file mode 100644 index 00000000000..1711f11fff9 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_450.RULE @@ -0,0 +1,13 @@ +FFmpeg is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +FFmpeg is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with FFmpeg; if not, write to the Free Software +51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_450.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_450.yml new file mode 100644 index 00000000000..48bbf5a1671 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_450.yml @@ -0,0 +1,3 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +notes: weird mildly danaged text diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_451.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_451.RULE new file mode 100644 index 00000000000..f7ddac61caf --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_451.RULE @@ -0,0 +1,13 @@ +MPlayer is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +MPlayer is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with MPlayer; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_451.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_451.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_451.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_452.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_452.RULE new file mode 100644 index 00000000000..afc39e285e9 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_452.RULE @@ -0,0 +1,13 @@ +libswresample is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +libswresample is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with libswresample; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_452.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_452.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_452.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_453.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_453.RULE new file mode 100644 index 00000000000..439c426a791 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_453.RULE @@ -0,0 +1,13 @@ +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free +Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_453.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_453.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_453.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1_429.RULE b/src/licensedcode/data/rules/lgpl-2.1_429.RULE new file mode 100644 index 00000000000..1cea3ed5401 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_429.RULE @@ -0,0 +1,13 @@ +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License 2.1 as published by the Free Software Foundation. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public License +along with this library; see the file COPYING.LIB. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1_429.yml b/src/licensedcode/data/rules/lgpl-2.1_429.yml new file mode 100644 index 00000000000..fb830b1203d --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1_429.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.1 +is_license_notice: yes +referenced_filenames: + - COPYING.LIB diff --git a/src/licensedcode/data/rules/lgpl-3.0_289.RULE b/src/licensedcode/data/rules/lgpl-3.0_289.RULE index d3f8b6b6058..ddcf6f67737 100644 --- a/src/licensedcode/data/rules/lgpl-3.0_289.RULE +++ b/src/licensedcode/data/rules/lgpl-3.0_289.RULE @@ -1 +1 @@ -licensed under the LGPL (GNU Lesser General Public License) version 3. See LGPL version 3 . \ No newline at end of file +licensed under the {{LGPL (GNU Lesser General Public License) version 3.}} {{See LGPL version 3 .}} diff --git a/src/licensedcode/data/rules/mit_1222.RULE b/src/licensedcode/data/rules/mit_1222.RULE new file mode 100644 index 00000000000..adef90cc138 --- /dev/null +++ b/src/licensedcode/data/rules/mit_1222.RULE @@ -0,0 +1,16 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1222.yml b/src/licensedcode/data/rules/mit_1222.yml new file mode 100644 index 00000000000..1e598d7fdfe --- /dev/null +++ b/src/licensedcode/data/rules/mit_1222.yml @@ -0,0 +1,3 @@ +license_expression: mit +is_license_text: yes +notes: there is a small, non-material difference in the disclaimer diff --git a/src/licensedcode/data/rules/mit_1223.RULE b/src/licensedcode/data/rules/mit_1223.RULE new file mode 100644 index 00000000000..de3b48fc2fb --- /dev/null +++ b/src/licensedcode/data/rules/mit_1223.RULE @@ -0,0 +1,21 @@ +Distributed under the terms of an {{MIT-style license:}} + + The {{MIT License}} + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/mit_1223.yml b/src/licensedcode/data/rules/mit_1223.yml new file mode 100644 index 00000000000..8e3f2b9085c --- /dev/null +++ b/src/licensedcode/data/rules/mit_1223.yml @@ -0,0 +1,2 @@ +license_expression: mit +is_license_text: yes diff --git a/src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.RULE b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.RULE new file mode 100644 index 00000000000..b83283b250d --- /dev/null +++ b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.RULE @@ -0,0 +1,10 @@ +In addition, as a special exception, the copyright holders listed above give +permission to link the code of its release of Qt with the OpenSSL project's +"OpenSSL" library (or modified versions of the "OpenSSL" library that use the +same license as the original version), and distribute the linked executables. + +You must comply with the GNU General Public License version 2 in all +respects for all of the code used other than the "OpenSSL" code. If you +modify this file, you may extend this exception to your version of the file, +but you are not obligated to do so. If you do not wish to do so, delete +this exception statement from your version of this file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.yml b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.yml new file mode 100644 index 00000000000..3ad5f8dc47a --- /dev/null +++ b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_4.yml @@ -0,0 +1,2 @@ +license_expression: openssl-exception-gpl-2.0 +is_license_text: yes diff --git a/src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.RULE b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.RULE new file mode 100644 index 00000000000..bc002583f28 --- /dev/null +++ b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.RULE @@ -0,0 +1,10 @@ +In addition, as a special exception, the copyright holders listed above give +permission to link the code of its release of with the OpenSSL project's +"OpenSSL" library (or modified versions of the "OpenSSL" library that use the +same license as the original version), and distribute the linked executables. + +You must comply with the GNU General Public License version 2 in all +respects for all of the code used other than the "OpenSSL" code. If you +modify this file, you may extend this exception to your version of the file, +but you are not obligated to do so. If you do not wish to do so, delete +this exception statement from your version of this file. \ No newline at end of file diff --git a/src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.yml b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.yml new file mode 100644 index 00000000000..3ad5f8dc47a --- /dev/null +++ b/src/licensedcode/data/rules/openssl-exception-gpl-2.0_5.yml @@ -0,0 +1,2 @@ +license_expression: openssl-exception-gpl-2.0 +is_license_text: yes diff --git a/src/licensedcode/data/rules/proprietary-license_738.RULE b/src/licensedcode/data/rules/proprietary-license_738.RULE index b6be6463fef..d5cef675bb0 100644 --- a/src/licensedcode/data/rules/proprietary-license_738.RULE +++ b/src/licensedcode/data/rules/proprietary-license_738.RULE @@ -1,4 +1,4 @@ -The MIT License (MIT) with restrictions +The {{MIT License}} (MIT) {{with restrictions}} Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -16,4 +16,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +THE SOFTWARE. diff --git a/src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.RULE b/src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.RULE new file mode 100644 index 00000000000..1bfb410a5f9 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.RULE @@ -0,0 +1,3 @@ +The Fraunhofer AAC library is licensed under a license incompatible to the GPL +and is not known to be compatible to the LGPL. Therefore, you have to pass +@code{--enable-nonfree} to configure to use it. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.yml b/src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.yml new file mode 100644 index 00000000000..fa3300996cd --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_and_lgpl-2.1_or_gpl-2.0_1.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license AND (lgpl-2.1 OR gpl-2.0) +is_license_notice: yes diff --git a/src/licensedcode/data/rules/public-domain_461.RULE b/src/licensedcode/data/rules/public-domain_461.RULE new file mode 100644 index 00000000000..be4f4c81e41 --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_461.RULE @@ -0,0 +1 @@ +based on public domain SHA-1 code \ No newline at end of file diff --git a/src/licensedcode/data/rules/public-domain_461.yml b/src/licensedcode/data/rules/public-domain_461.yml new file mode 100644 index 00000000000..bba87100644 --- /dev/null +++ b/src/licensedcode/data/rules/public-domain_461.yml @@ -0,0 +1,3 @@ +license_expression: public-domain +is_license_notice: yes +relevance: 100 From 67e5380a8d0f7c78910ef0eef56287fb8fa0b1bf Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 30 Sep 2022 17:23:55 +0200 Subject: [PATCH 45/54] Ensure that test regen works for validation tests License validation tests were not properly regeneratable. Signed-off-by: Philippe Ombredanne --- tests/licensedcode/test_detection_validate.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/licensedcode/test_detection_validate.py b/tests/licensedcode/test_detection_validate.py index 7d1f185b8e1..9e0b8978925 100644 --- a/tests/licensedcode/test_detection_validate.py +++ b/tests/licensedcode/test_detection_validate.py @@ -19,6 +19,7 @@ from licensedcode import cache from licensedcode import models +from licensedcode.models import licenses_data_dir from scancode_config import REGEN_TEST_FIXTURES """ @@ -121,7 +122,7 @@ def check_ignorable_clues(licensish, regen=REGEN_TEST_FIXTURES, verbose=False): ``regen`` the ignorables to update the License or Rule .yml data file. """ result = models.get_ignorables(text=licensish.text) - + if verbose: print() print('result') @@ -137,7 +138,7 @@ def check_ignorable_clues(licensish, regen=REGEN_TEST_FIXTURES, verbose=False): models.set_ignorables(licish, result , verbose=verbose) - licish.dump() + licish.dump(licenses_data_dir) if is_from_license: licensish = models.build_rule_from_license(licish) From b5f0ae24eff8dfb8444662fbbc6b0447ab0a6ccc Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 30 Sep 2022 17:42:33 +0200 Subject: [PATCH 46/54] Add new and improved license rules and tests Signed-off-by: Philippe Ombredanne --- .../other-permissive_or_gpl-1.0-plus_2.RULE | 14 + .../other-permissive_or_gpl-1.0-plus_2.yml | 2 + .../other-permissive_or_gpl-1.0-plus_3.RULE | 15 + .../other-permissive_or_gpl-1.0-plus_3.yml | 2 + .../Dual-license/AFL-2.1_or_GPL-2.0.txt.yml | 2 +- ..._and_gpl_and_gpl_and_gpl_and_other.txt.yml | 1 - .../data/datadriven/lic4/qt_config.cpp | 904 ++++++++++++++++++ .../data/datadriven/lic4/qt_config.cpp.yml | 4 + .../data/spdx/lines/misc2.java.json | 4 +- 9 files changed, 944 insertions(+), 4 deletions(-) create mode 100644 src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE create mode 100644 src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.yml create mode 100644 src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.RULE create mode 100644 src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.yml create mode 100644 tests/licensedcode/data/datadriven/lic4/qt_config.cpp create mode 100644 tests/licensedcode/data/datadriven/lic4/qt_config.cpp.yml diff --git a/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE new file mode 100644 index 00000000000..221aaffee20 --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.RULE @@ -0,0 +1,14 @@ +* Permission to use, copy, and modify this software with or without fee + * is hereby granted, provided that this entire notice is included in + * all copies of any software which is or includes a copy or + * modification of this software. + * You may use this code under the GNU public license if you so wish. Please + * contribute changes back to the authors under this freer than GPL license + * so that we may further the use of strong encryption without limitations to + * all. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE + * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR + * PURPOSE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.yml b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.yml new file mode 100644 index 00000000000..baa0749778c --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_2.yml @@ -0,0 +1,2 @@ +license_expression: other-permissive OR gpl-1.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.RULE b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.RULE new file mode 100644 index 00000000000..f76a0813b86 --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.RULE @@ -0,0 +1,15 @@ +Permission to use, copy, and modify this software with or without fee + is hereby granted, provided that this entire notice is included in + all copies of any software which is or includes a copy or + modification of this software. + . + You may use this code under GNU General Public License if you so wish. Please + contribute changes back to the authors under this freer than GPL license + so that we may further the use of strong encryption without limitations to + all. + . + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR + IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY + REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE + MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR + PURPOSE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.yml b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.yml new file mode 100644 index 00000000000..baa0749778c --- /dev/null +++ b/src/licensedcode/data/rules/other-permissive_or_gpl-1.0-plus_3.yml @@ -0,0 +1,2 @@ +license_expression: other-permissive OR gpl-1.0-plus +is_license_notice: yes diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/AFL-2.1_or_GPL-2.0.txt.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/AFL-2.1_or_GPL-2.0.txt.yml index ba8db91e56e..8485da16f80 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/AFL-2.1_or_GPL-2.0.txt.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/AFL-2.1_or_GPL-2.0.txt.yml @@ -1,4 +1,4 @@ license_expressions: - - (afl-2.1 OR gpl-2.0) AND gpl-2.0 + - afl-2.1 OR gpl-2.0-plus - afl-2.1 - gpl-2.0 diff --git a/tests/licensedcode/data/datadriven/lic2/bsd-original-uc_and_gpl_and_gpl_and_gpl_and_other.txt.yml b/tests/licensedcode/data/datadriven/lic2/bsd-original-uc_and_gpl_and_gpl_and_gpl_and_other.txt.yml index b0def57c5b2..ed9af8fa528 100644 --- a/tests/licensedcode/data/datadriven/lic2/bsd-original-uc_and_gpl_and_gpl_and_gpl_and_other.txt.yml +++ b/tests/licensedcode/data/datadriven/lic2/bsd-original-uc_and_gpl_and_gpl_and_gpl_and_other.txt.yml @@ -3,5 +3,4 @@ license_expressions: - gpl-1.0-plus - bsd-original-uc - gpl-1.0-plus - - bsd-new - gpl-1.0-plus diff --git a/tests/licensedcode/data/datadriven/lic4/qt_config.cpp b/tests/licensedcode/data/datadriven/lic4/qt_config.cpp new file mode 100644 index 00000000000..d6f01f2d86b --- /dev/null +++ b/tests/licensedcode/data/datadriven/lic4/qt_config.cpp @@ -0,0 +1,904 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2015 Intel Corporation +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +// We could use QDir::homePath() + "/.qt-license", but +// that will only look in the first of $HOME,$USERPROFILE +// or $HOMEDRIVE$HOMEPATH. So, here we try'em all to be +// more forgiving for the end user.. +QString Configure::firstLicensePath() +{ + QStringList allPaths; + allPaths << "./.qt-license" + << QString::fromLocal8Bit(getenv("HOME")) + "/.qt-license" + << QString::fromLocal8Bit(getenv("USERPROFILE")) + "/.qt-license" + << QString::fromLocal8Bit(getenv("HOMEDRIVE")) + QString::fromLocal8Bit(getenv("HOMEPATH")) + "/.qt-license"; + for (int i = 0; i< allPaths.count(); ++i) + if (QFile::exists(allPaths.at(i))) + return allPaths.at(i); + return QString(); +} + +// #### somehow I get a compiler error about vc++ reaching the nesting limit without +// undefining the ansi for scoping. +#ifdef for +#undef for +#endif + +void Configure::parseCmdLine() +{ + if (configCmdLine.size() && configCmdLine.at(0) == "-top-level") { + dictionary[ "TOPLEVEL" ] = "yes"; + configCmdLine.removeAt(0); + } + + int argCount = configCmdLine.size(); + int i = 0; + const QStringList imageFormats = QStringList() << "gif" << "png" << "jpeg"; + + if (argCount < 1) // skip rest if no arguments + ; + else if (configCmdLine.at(i) == "-redo") { + dictionary[ "REDO" ] = "yes"; + configCmdLine.clear(); + reloadCmdLine(); + } + + else if (configCmdLine.at(i) == "-loadconfig") { + ++i; + if (i != argCount) { + dictionary[ "REDO" ] = "yes"; + dictionary[ "CUSTOMCONFIG" ] = "_" + configCmdLine.at(i); + configCmdLine.clear(); + reloadCmdLine(); + } else { + dictionary[ "DONE" ] = "error"; + } + i = 0; + } + argCount = configCmdLine.size(); + + bool isDeviceMkspec = false; + + // Look first for XQMAKESPEC + for (int j = 0 ; j < argCount; ++j) + { + if ((configCmdLine.at(j) == "-xplatform") || (configCmdLine.at(j) == "-device")) { + isDeviceMkspec = (configCmdLine.at(j) == "-device"); + ++j; + if (j == argCount) + break; + dictionary["XQMAKESPEC"] = configCmdLine.at(j); + applySpecSpecifics(); + break; + } + } + +void Configure::generateConfigfiles() +{ + { + FileWriter tmpStream(buildPath + "/src/corelib/global/qconfig.h"); + + tmpStream << "#define QT_VERSION_MAJOR " << dictionary["VERSION_MAJOR"] << endl + << "#define QT_VERSION_MINOR " << dictionary["VERSION_MINOR"] << endl + << "#define QT_VERSION_PATCH " << dictionary["VERSION_PATCH"] << endl + << "#define QT_VERSION_STR \"" << dictionary["VERSION"] << "\"\n" + << endl; + + if (dictionary[ "QCONFIG" ] == "full") { + tmpStream << "/* Everything */" << endl; + } else { + tmpStream << "#ifndef QT_BOOTSTRAPPED" << endl; + QFile inFile(dictionary["QCONFIG_PATH"]); + if (inFile.open(QFile::ReadOnly)) { + tmpStream << QTextStream(&inFile).readAll(); + inFile.close(); + } + tmpStream << "#endif // QT_BOOTSTRAPPED" << endl; + } + tmpStream << endl; + + if (dictionary[ "SHARED" ] == "no") { + tmpStream << "/* Qt was configured for a static build */" << endl + << "#if !defined(QT_SHARED) && !defined(QT_STATIC)" << endl + << "# define QT_STATIC" << endl + << "#endif" << endl + << endl; + } + tmpStream << "/* License information */" << endl; + tmpStream << "#define QT_PRODUCT_LICENSEE \"" << dictionary[ "LICENSEE" ] << "\"" << endl; + tmpStream << "#define QT_PRODUCT_LICENSE \"" << dictionary[ "EDITION" ] << "\"" << endl; + tmpStream << endl; + if (dictionary["BUILDDEV"] == "yes") { + dictionary["QMAKE_INTERNAL"] = "yes"; + tmpStream << "/* Used for example to export symbols for the certain autotests*/" << endl; + tmpStream << "#define QT_BUILD_INTERNAL" << endl; + tmpStream << endl; + } + + tmpStream << endl << "// Compiler sub-arch support" << endl; + if (dictionary[ "SSE2" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_SSE2 1" << endl; + if (dictionary[ "SSE3" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_SSE3 1" << endl; + if (dictionary[ "SSSE3" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_SSSE3 1" << endl; + if (dictionary[ "SSE4_1" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_SSE4_1 1" << endl; + if (dictionary[ "SSE4_2" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_SSE4_2 1" << endl; + if (dictionary[ "AVX" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_AVX 1" << endl; + if (dictionary[ "AVX2" ] == "yes") + tmpStream << "#define QT_COMPILER_SUPPORTS_AVX2 1" << endl; + + if (dictionary["QREAL"] != "double") { + tmpStream << "#define QT_COORD_TYPE " << dictionary["QREAL"] << endl; + tmpStream << "#define QT_COORD_TYPE_STRING " << dictionary["QREAL_STRING"] << endl; + } + + tmpStream << endl << "// Compile time features" << endl; + + QStringList qconfigList; + if (dictionary["STYLE_WINDOWS"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWS"; + if (dictionary["STYLE_FUSION"] != "yes") qconfigList += "QT_NO_STYLE_FUSION"; + if (dictionary["STYLE_WINDOWSXP"] != "yes" && dictionary["STYLE_WINDOWSVISTA"] != "yes") + qconfigList += "QT_NO_STYLE_WINDOWSXP"; + if (dictionary["STYLE_WINDOWSVISTA"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSVISTA"; + if (dictionary["STYLE_WINDOWSCE"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSCE"; + if (dictionary["STYLE_WINDOWSMOBILE"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSMOBILE"; + if (dictionary["STYLE_GTK"] != "yes") qconfigList += "QT_NO_STYLE_GTK"; + + if (dictionary["GIF"] == "yes") qconfigList += "QT_BUILTIN_GIF_READER=1"; + if (dictionary["PNG"] != "yes") qconfigList += "QT_NO_IMAGEFORMAT_PNG"; + if (dictionary["JPEG"] != "yes") qconfigList += "QT_NO_IMAGEFORMAT_JPEG"; + if (dictionary["ZLIB"] == "no") { + qconfigList += "QT_NO_ZLIB"; + qconfigList += "QT_NO_COMPRESS"; + } + + if (dictionary["ACCESSIBILITY"] == "no") qconfigList += "QT_NO_ACCESSIBILITY"; + if (dictionary["WIDGETS"] == "no") qconfigList += "QT_NO_WIDGETS"; + if (dictionary["GUI"] == "no") qconfigList += "QT_NO_GUI"; + if (dictionary["OPENGL"] == "no") qconfigList += "QT_NO_OPENGL"; + if (dictionary["OPENVG"] == "no") qconfigList += "QT_NO_OPENVG"; + if (dictionary["SSL"] == "no") qconfigList += "QT_NO_SSL"; + if (dictionary["OPENSSL"] == "no") qconfigList += "QT_NO_OPENSSL"; + if (dictionary["OPENSSL"] == "linked") qconfigList += "QT_LINKED_OPENSSL"; + if (dictionary["DBUS"] == "no") qconfigList += "QT_NO_DBUS"; + if (dictionary["FREETYPE"] == "no") qconfigList += "QT_NO_FREETYPE"; + if (dictionary["HARFBUZZ"] == "no") qconfigList += "QT_NO_HARFBUZZ"; + if (dictionary["NATIVE_GESTURES"] == "no") qconfigList += "QT_NO_NATIVE_GESTURES"; + + if (dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES"; + if (dictionary["OPENGL_ES_2"] == "yes") qconfigList += "QT_OPENGL_ES_2"; + if (dictionary["DYNAMICGL"] == "yes") qconfigList += "QT_OPENGL_DYNAMIC"; + if (dictionary["SQL_MYSQL"] == "yes") qconfigList += "QT_SQL_MYSQL"; + if (dictionary["SQL_ODBC"] == "yes") qconfigList += "QT_SQL_ODBC"; + if (dictionary["SQL_OCI"] == "yes") qconfigList += "QT_SQL_OCI"; + if (dictionary["SQL_PSQL"] == "yes") qconfigList += "QT_SQL_PSQL"; + if (dictionary["SQL_TDS"] == "yes") qconfigList += "QT_SQL_TDS"; + if (dictionary["SQL_DB2"] == "yes") qconfigList += "QT_SQL_DB2"; + if (dictionary["SQL_SQLITE"] == "yes") qconfigList += "QT_SQL_SQLITE"; + if (dictionary["SQL_SQLITE2"] == "yes") qconfigList += "QT_SQL_SQLITE2"; + if (dictionary["SQL_IBASE"] == "yes") qconfigList += "QT_SQL_IBASE"; + + if (dictionary["POSIX_IPC"] == "yes") + qconfigList += "QT_POSIX_IPC"; + else if ((platform() != ANDROID) && (platform() != WINDOWS) && (platform() != WINDOWS_CE) + && (platform() != WINDOWS_RT)) + qconfigList << "QT_NO_SYSTEMSEMAPHORE" << "QT_NO_SHAREDMEMORY"; + + if (dictionary["FONT_CONFIG"] == "no") qconfigList += "QT_NO_FONTCONFIG"; + + if (dictionary["NIS"] == "yes") + qconfigList += "QT_NIS"; + else + qconfigList += "QT_NO_NIS"; + + if (dictionary["LARGE_FILE"] == "yes") qconfigList += "QT_LARGEFILE_SUPPORT=64"; + if (dictionary["QT_CUPS"] == "no") qconfigList += "QT_NO_CUPS"; + if (dictionary["QT_ICONV"] == "no") qconfigList += "QT_NO_ICONV"; + if (dictionary["QT_EVDEV"] == "no") qconfigList += "QT_NO_EVDEV"; + if (dictionary["QT_MTDEV"] == "no") qconfigList += "QT_NO_MTDEV"; + if (dictionary["QT_TSLIB"] == "no") qconfigList += "QT_NO_TSLIB"; + if (dictionary["QT_GLIB"] == "no") qconfigList += "QT_NO_GLIB"; + if (dictionary["QT_INOTIFY"] == "no") qconfigList += "QT_NO_INOTIFY"; + if (dictionary["QT_EVENTFD"] == "no") qconfigList += "QT_NO_EVENTFD"; + if (dictionary["ATOMIC64"] == "no") qconfigList += "QT_NO_STD_ATOMIC64"; + + if (dictionary["REDUCE_EXPORTS"] == "yes") qconfigList += "QT_VISIBILITY_AVAILABLE"; + if (dictionary["REDUCE_RELOCATIONS"] == "yes") qconfigList += "QT_REDUCE_RELOCATIONS"; + if (dictionary["QT_GETIFADDRS"] == "no") qconfigList += "QT_NO_GETIFADDRS"; + + qconfigList.sort(); + for (int i = 0; i < qconfigList.count(); ++i) + tmpStream << addDefine(qconfigList.at(i)); + + tmpStream<<"#define QT_QPA_DEFAULT_PLATFORM_NAME \"" << qpaPlatformName() << "\""<> accept; + accept = tolower(accept); + + if (accept == 'y') { + return true; + } else if (accept == 'n') { + return false; + } else { + if (dictionary["EDITION"] == "OpenSource") { + if (accept == '3') + licenseFile = orgLicenseFile + "/LICENSE.LGPLv3"; + else + licenseFile = orgLicenseFile + "/LICENSE.LGPLv21"; + } + // Get console line height, to fill the screen properly + int i = 0, screenHeight = 25; // default + CONSOLE_SCREEN_BUFFER_INFO consoleInfo; + HANDLE stdOut = GetStdHandle(STD_OUTPUT_HANDLE); + if (GetConsoleScreenBufferInfo(stdOut, &consoleInfo)) + screenHeight = consoleInfo.srWindow.Bottom + - consoleInfo.srWindow.Top + - 1; // Some overlap for context + + // Prompt the license content to the user + QFile file(licenseFile); + if (!file.open(QFile::ReadOnly)) { + cout << "Failed to load LICENSE file" << licenseFile << endl; + return false; + } + QStringList licenseContent = QString(file.readAll()).split('\n'); + while (i < licenseContent.size()) { + cout << licenseContent.at(i) << endl; + if (++i % screenHeight == 0) { + promptKeyPress(); + cout << "\r"; // Overwrite text above + } + } + } + } +} + +void Configure::readLicense() +{ + dictionary["PLATFORM NAME"] = platformName(); + dictionary["LICENSE FILE"] = sourcePath; + + bool openSource = false; + bool hasOpenSource = QFile::exists(dictionary["LICENSE FILE"] + "/LICENSE.LGPLv3") || QFile::exists(dictionary["LICENSE FILE"] + "/LICENSE.LGPLv21"); + if (dictionary["BUILDTYPE"] == "commercial") { + openSource = false; + } else if (dictionary["BUILDTYPE"] == "opensource") { + openSource = true; + } else if (hasOpenSource) { // No Open Source? Just display the commercial license right away + forever { + char accept = '?'; + cout << "Which edition of Qt do you want to use ?" << endl; + cout << "Type 'c' if you want to use the Commercial Edition." << endl; + cout << "Type 'o' if you want to use the Open Source Edition." << endl; + cin >> accept; + accept = tolower(accept); + + if (accept == 'c') { + openSource = false; + break; + } else if (accept == 'o') { + openSource = true; + break; + } + } + } + if (hasOpenSource && openSource) { + cout << endl << "This is the " << dictionary["PLATFORM NAME"] << " Open Source Edition." << endl << endl; + dictionary["LICENSEE"] = "Open Source"; + dictionary["EDITION"] = "OpenSource"; + } else if (openSource) { + cout << endl << "Cannot find the GPL license files! Please download the Open Source version of the library." << endl; + dictionary["DONE"] = "error"; + } else { + QString tpLicense = sourcePath + "/LICENSE.PREVIEW.COMMERCIAL"; + if (QFile::exists(tpLicense)) { + cout << endl << "This is the Qt Preview Edition." << endl << endl; + + dictionary["EDITION"] = "Preview"; + dictionary["LICENSE FILE"] = tpLicense; + } else { + Tools::checkLicense(dictionary, sourcePath, buildPath); + } + } + + if (dictionary["LICENSE_CONFIRMED"] != "yes") { + if (!showLicense(dictionary["LICENSE FILE"])) { + cout << "Configuration aborted since license was not accepted" << endl; + dictionary["DONE"] = "error"; + return; + } + } else if (dictionary["LICHECK"].isEmpty()) { // licheck executable shows license + cout << "You have already accepted the terms of the license." << endl << endl; + } +} diff --git a/tests/licensedcode/data/datadriven/lic4/qt_config.cpp.yml b/tests/licensedcode/data/datadriven/lic4/qt_config.cpp.yml new file mode 100644 index 00000000000..34b20e20182 --- /dev/null +++ b/tests/licensedcode/data/datadriven/lic4/qt_config.cpp.yml @@ -0,0 +1,4 @@ +license_expressions: + - qt-commercial-1.1 OR lgpl-2.1 WITH qt-company-exception-lgpl-2.1 OR lgpl-3.0 WITH + qt-company-exception-lgpl-2.1 + diff --git a/tests/licensedcode/data/spdx/lines/misc2.java.json b/tests/licensedcode/data/spdx/lines/misc2.java.json index d31b2ec57b4..e5bd89cf399 100644 --- a/tests/licensedcode/data/spdx/lines/misc2.java.json +++ b/tests/licensedcode/data/spdx/lines/misc2.java.json @@ -1,7 +1,7 @@ [ [ "SPDX-License-Identifier: BSD-2-Clause", - 4, - 9 + 5, + 10 ] ] \ No newline at end of file From e2e82a5bc28098a65849e2cda56c6573e7b8a088 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Sun, 2 Oct 2022 16:18:10 +0200 Subject: [PATCH 47/54] Improve how we detect license in Windows PEs If there is a license tag, use it for dteection, otherwise use all declared licensing information. Add new rules to improve license detection accuracy. Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/rules/cc0-1.0_176.yml | 3 +- .../data/rules/gpl-1.0-plus_570.RULE | 3 + .../data/rules/gpl-1.0-plus_570.yml | 2 + .../data/rules/gpl-1.0-plus_571.RULE | 2 + .../data/rules/gpl-1.0-plus_571.yml | 4 + .../data/rules/gpl-1.0-plus_572.RULE | 2 + .../data/rules/gpl-1.0-plus_572.yml | 3 + .../data/rules/lgpl-2.1-plus_454.RULE | 3 + .../data/rules/lgpl-2.1-plus_454.yml | 4 + .../data/rules/lgpl-2.1-plus_455.RULE | 2 + .../data/rules/lgpl-2.1-plus_455.yml | 4 + .../data/rules/lgpl-2.1-plus_456.RULE | 2 + .../data/rules/lgpl-2.1-plus_456.yml | 2 + .../data/rules/lgpl-2.1-plus_457.RULE | 2 + .../data/rules/lgpl-2.1-plus_457.yml | 2 + src/licensedcode/data/rules/lgpl-2.1_153.RULE | 4 +- .../data/rules/proprietary-license_788.RULE | 826 ++++++++++++++++++ .../data/rules/proprietary-license_788.yml | 2 + src/packagedcode/win_pe.py | 6 +- .../libiconv2.dll.package-expected.json | 2 +- .../win_pe/libintl3.dll.package-expected.json | 2 +- .../win_pe/tre4.dll.package-expected.json | 2 +- 22 files changed, 877 insertions(+), 7 deletions(-) create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_570.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_570.yml create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_571.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_571.yml create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_572.RULE create mode 100644 src/licensedcode/data/rules/gpl-1.0-plus_572.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_454.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_454.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_455.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_455.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_456.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_456.yml create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_457.RULE create mode 100644 src/licensedcode/data/rules/lgpl-2.1-plus_457.yml create mode 100644 src/licensedcode/data/rules/proprietary-license_788.RULE create mode 100644 src/licensedcode/data/rules/proprietary-license_788.yml diff --git a/src/licensedcode/data/rules/cc0-1.0_176.yml b/src/licensedcode/data/rules/cc0-1.0_176.yml index 49414157743..74d1765900c 100644 --- a/src/licensedcode/data/rules/cc0-1.0_176.yml +++ b/src/licensedcode/data/rules/cc0-1.0_176.yml @@ -1,3 +1,4 @@ license_expression: cc0-1.0 is_license_reference: yes -relevance: 100 +relevance: 50 + diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_570.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_570.RULE new file mode 100644 index 00000000000..43e6345ab14 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_570.RULE @@ -0,0 +1,3 @@ +License +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_570.yml b/src/licensedcode/data/rules/gpl-1.0-plus_570.yml new file mode 100644 index 00000000000..761b0ddd47f --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_570.yml @@ -0,0 +1,2 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_571.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_571.RULE new file mode 100644 index 00000000000..314400a2065 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_571.RULE @@ -0,0 +1,2 @@ +you can redistribute it and/or modify it under +the terms of the GNU General Public License;see www.gnu.org/copyleft/gpl.html. \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_571.yml b/src/licensedcode/data/rules/gpl-1.0-plus_571.yml new file mode 100644 index 00000000000..1cdb0a6fd67 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_571.yml @@ -0,0 +1,4 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/copyleft/gpl.html diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_572.RULE b/src/licensedcode/data/rules/gpl-1.0-plus_572.RULE new file mode 100644 index 00000000000..e8c5821f54d --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_572.RULE @@ -0,0 +1,2 @@ +you can redistribute it and/or modify it under +the terms of the GNU General Public License \ No newline at end of file diff --git a/src/licensedcode/data/rules/gpl-1.0-plus_572.yml b/src/licensedcode/data/rules/gpl-1.0-plus_572.yml new file mode 100644 index 00000000000..116c9848025 --- /dev/null +++ b/src/licensedcode/data/rules/gpl-1.0-plus_572.yml @@ -0,0 +1,3 @@ +license_expression: gpl-1.0-plus +is_license_notice: yes +relevance: 100 diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_454.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_454.RULE new file mode 100644 index 00000000000..a7584fb1728 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_454.RULE @@ -0,0 +1,3 @@ +License +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License;see www.gnu.org/copyleft/lesser.html. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_454.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_454.yml new file mode 100644 index 00000000000..d50c93d7ec6 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_454.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/copyleft/lesser.html diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_455.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_455.RULE new file mode 100644 index 00000000000..fc8d9c1220d --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_455.RULE @@ -0,0 +1,2 @@ +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License;see www.gnu.org/copyleft/lesser.html. \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_455.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_455.yml new file mode 100644 index 00000000000..d50c93d7ec6 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_455.yml @@ -0,0 +1,4 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes +ignorable_urls: + - http://www.gnu.org/copyleft/lesser.html diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_456.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_456.RULE new file mode 100644 index 00000000000..cec2e9ba9f7 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_456.RULE @@ -0,0 +1,2 @@ +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_456.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_456.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_456.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_457.RULE b/src/licensedcode/data/rules/lgpl-2.1-plus_457.RULE new file mode 100644 index 00000000000..f9af7db12a4 --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_457.RULE @@ -0,0 +1,2 @@ +you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License \ No newline at end of file diff --git a/src/licensedcode/data/rules/lgpl-2.1-plus_457.yml b/src/licensedcode/data/rules/lgpl-2.1-plus_457.yml new file mode 100644 index 00000000000..18bddb7795a --- /dev/null +++ b/src/licensedcode/data/rules/lgpl-2.1-plus_457.yml @@ -0,0 +1,2 @@ +license_expression: lgpl-2.1-plus +is_license_notice: yes diff --git a/src/licensedcode/data/rules/lgpl-2.1_153.RULE b/src/licensedcode/data/rules/lgpl-2.1_153.RULE index b18c048bd3b..ccd03318669 100644 --- a/src/licensedcode/data/rules/lgpl-2.1_153.RULE +++ b/src/licensedcode/data/rules/lgpl-2.1_153.RULE @@ -1,3 +1,3 @@ This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License -version 2.1 as published by the Free Software Foundation; \ No newline at end of file +it under the terms of the {{GNU Lesser General Public License +version 2.1 as published by the Free Software Foundation; }} diff --git a/src/licensedcode/data/rules/proprietary-license_788.RULE b/src/licensedcode/data/rules/proprietary-license_788.RULE new file mode 100644 index 00000000000..bedf9e36aa6 --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_788.RULE @@ -0,0 +1,826 @@ +MENTOR GRAPHICS IS WILLING TO LICENSE THE SOFTWARE ONLY UPON + THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN + THIS SOFTWARE LICENSE AGREEMENT. PLEASE READ THE TERMS + CAREFULLY. BY CLICKING ON "I accept the terms of the License + Agreement", YOU WILL INDICATE YOUR AGREEMENT WITH THEM. IF + YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY + OR OTHER LEGAL ENTITY, YOUR ACCEPTANCE REPRESENTS THAT YOU + HAVE THE AUTHORITY TO BIND SUCH ENTITY TO THESE TERMS, IN + WHICH CASE "YOU" OR "YOUR" SHALL REFER TO YOUR ENTITY. IF YOU + DO NOT AGREE WITH THESE TERMS, OR IF YOU DO NOT HAVE THE + AUTHORITY TO BIND YOUR ENTITY, THEN MENTOR GRAPHICS IS + UNWILLING TO LICENSE THE SOFTWARE. + Sourcery CodeBench Lite License Agreement + + Sourcery CodeBench Lite for ARM GNU/Linux is licensed under + the Mentor Graphics Embedded Software and Hardware License + Agreement. If you have a separate signed or shrinkwrap + agreement (as applicable) with Mentor Graphics related to + your use of Sourcery CodeBench Lite, your order is subject to + the terms of that agreement. If you do not, the following + terms apply, unless otherwise specifically agreed to in + writing by an authorized representative of Mentor Graphics. + The terms of this Getting Started Guide supplement, but do + not replace or amend, the terms of your separate agreement + with Mentor Graphics. Accordingly, to the extent the + following terms and conditions conflict with such separate + agreement, the terms and conditions of the separate agreement + shall control. + + The latest version of the License Agreement is available + on-line at . + + MENTOR GRAPHICS IS WILLING TO LICENSE THE SOFTWARE ONLY UPON + THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN + THIS SOFTWARE LICENSE AGREEMENT. PLEASE READ THE TERMS + CAREFULLY. BY CLICKING ON "I accept the terms of the License + Agreement", YOU WILL INDICATE YOUR AGREEMENT WITH THEM. IF + YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A COMPANY + OR OTHER LEGAL ENTITY, YOUR ACCEPTANCE REPRESENTS THAT YOU + HAVE THE AUTHORITY TO BIND SUCH ENTITY TO THESE TERMS, IN + WHICH CASE "YOU" OR "YOUR" SHALL REFER TO YOUR ENTITY. IF YOU + DO NOT AGREE WITH THESE TERMS, OR IF YOU DO NOT HAVE THE + AUTHORITY TO BIND YOUR ENTITY, THEN MENTOR GRAPHICS IS + UNWILLING TO LICENSE THE SOFTWARE. + Embedded Software and Hardware License Agreement IMPORTANT + INFORMATION + + USE OF ALL PRODUCTS IS SUBJECT TO LICENSE RESTRICTIONS. + CAREFULLY READ THIS LICENSE AGREEMENT BEFORE USING THE + PRODUCTS. USE OF PRODUCTS INDICATES CUSTOMER'S COMPLETE AND + UNCONDITIONAL ACCEPTANCE OF THE TERMS AND CONDITIONS SET + FORTH IN THIS AGREEMENT. ANY ADDITIONAL OR DIFFERENT PURCHASE + ORDER TERMS AND CONDITIONS SHALL NOT APPLY. + EMBEDDED SOFTWARE AND HARDWARE LICENSE AGREEMENT + ("Agreement") + + This is a legal agreement concerning the use of Products (as + defined in Section 1) between the company acquiring the + Products ("Customer"), and the Mentor Graphics entity that + issued the corresponding quotation or, if no quotation was + issued, the applicable local Mentor Graphics entity ("Mentor + Graphics"). Except for license agreements related to the + subject matter of this license agreement which are physically + signed by Customer and an authorized representative of Mentor + Graphics, this Agreement and the applicable quotation contain + the parties' entire understanding relating to the subject + matter and supersede all prior or contemporaneous agreements. + If Customer does not agree to these terms and conditions, + promptly return or, in the case of Products received + electronically, certify destruction of Products and all + accompanying items within five days after receipt of such + Products and receive a full refund of any license fee paid. + 1. Definitions. + 1. "Customer's Product" means Customer's end-user + product identified by a unique SKU (including any + Related SKUs) in an applicable Addenda that is + developed, manufactured, branded and shipped solely + by Customer or an authorized manufacturer or + subcontractor on behalf of Customer to end-users or + consumers; + 2. "Developer" means a unique user, as identified by a + unique user identification number, with access to + Embedded Software at an authorized Development + Location. A unique user is an individual who works + directly with the embedded software in source code + form, or creates, modifies or compiles software that + ultimately links to the Embedded Software in Object + Code form and is embedded into Customer's Product at + the point of manufacture; + 3. "Development Location" means the location where + Products may be used as authorized in the applicable + Addenda; + 4. "Development Tools" means the software that may be + used by Customer for building, editing, compiling, + debugging or prototyping Customer's Product; + 5. "Embedded Software" means Software that is + embeddable; + 6. "End-User" means Customer's customer; + 7. "Executable Code" means a compiled program + translated into a machine-readable format that can + be loaded into memory and run by a certain + processor; + 8. "Hardware" means a physically tangible + electro-mechanical system or sub-system and + associated documentation; + 9. "Linkable Object Code" or "Object Code" means + linkable code resulting from the translation, + processing, or compiling of Source Code by a + computer into machine-readable format; + 10. "Mentor Embedded Linux" or "MEL" means Mentor + Graphics' tools, source code, and recipes for + building Linux systems; + 11. "Open Source Software" or "OSS" means software + subject to an open source license which requires as + a condition for redistribution of such software, + including modifications thereto, that the: (i) + redistribution be in source code form or be made + available in source code form; (ii) redistributed + software be licensed to allow the making of + derivative works; or (iii) redistribution be at no + charge; + 12. "Processor" means the specific microprocessor to be + used with Software and implemented in Customer's + Product; + 13. "Products" means Software, Term-Licensed Products + and/or Hardware; + 14. "Proprietary Components" means the components of the + Products that are owned and/or licensed by Mentor + Graphics and are not subject to an Open Source + Software license, as more fully set forth herein; + 15. "Redistributable Components" means those components + that are intended to be incorporated or linked into + Customer's Linkable Object Code developed with the + Software, as more fully set forth herein; + 16. "Related SKU" means two or more Customer Products + identified by logically-related SKUs, where there is + no difference or change in the electrical hardware + or software content between such Customer Products; + 17. "Software" means software programs, Embedded + Software and/or Development Tools, including any + updates, modifications, revisions, copies, + documentation and design data that are licensed + under this Agreement; + 18. "Source Code" means software in a form in which the + program logic is readily understandable by a human + being; + 19. "Sourcery CodeBench Software" means Mentor Graphics' + Development Tool for C/C++ embedded application + development; + 20. "Sourcery VSIPL++" is Software providing C++ classes + and functions for writing embedded signal processing + applications designed to run on one or more + processors; + 21. "Stock Keeping Unit" or "SKU" is a unique number or + code used to identify each distinct product, item or + service available for purchase; + 22. "Subsidiary" means any corporation more than 50% + owned by Customer, excluding Mentor Graphics + competitors. Customer agrees to fulfill the + obligations of such Subsidiary in the event of + default. To the extent Mentor Graphics authorizes + any Subsidiary's use of Products under this + Agreement, Customer agrees to ensure such + Subsidiary's compliance with the terms of this + Agreement and will be liable for any breach by a + Subsidiary; and + 23. "Term-Licensed Products" means Products licensed to + Customer for a limited time period ("Term"). + 2. Orders, Fees and Payment. + 1. To the extent Customer (or if agreed by Mentor + Graphics, Customer's appointed third party buying + agent) places and Mentor Graphics accepts purchase + orders pursuant to this Agreement ("Order(s)"), each + Order will constitute a contract between Customer + and Mentor Graphics, which shall be governed solely + and exclusively by the terms and conditions of this + Agreement and any applicable Addenda, whether or not + these documents are referenced on the Order. Any + additional or conflicting terms and conditions + appearing on an Order will not be effective unless + agreed in writing by an authorized representative of + Customer and Mentor Graphics. + 2. Amounts invoiced will be paid, in the currency + specified on the applicable invoice, within 30 days + from the date of such invoice. All invoices will be + sent electronically to Customer on the date stated + on the invoice unless otherwise specified in an + Addendum. Any past due invoices will be subject to + the imposition of interest charges in the amount of + one and one-half percent per month or the applicable + legal rate currently in effect, whichever is lower. + Prices do not include freight, insurance, customs + duties, taxes or other similar charges, which Mentor + Graphics will state separately in the applicable + invoice(s). Unless timely provided with a valid + certificate of exemption or other evidence that + items are not taxable, Mentor Graphics will invoice + Customer for all applicable taxes including, but not + limited to, VAT, GST, sales tax, consumption tax and + service tax. Customer will make all payments free + and clear of, and without reduction for, any + withholding or other taxes; any such taxes imposed + on payments by Customer hereunder will be Customer's + sole responsibility. If Customer appoints a third + party to place purchase orders and/or make payments + on Customer's behalf, Customer shall be liable for + payment under Orders placed by such third party in + the event of default. + 3. All Products are delivered FCA factory (Incoterms + 2010), freight prepaid and invoiced to Customer, + except Software delivered electronically, which + shall be deemed delivered when made available to + Customer for download. Mentor Graphics' delivery of + Software by electronic means is subject to + Customer's provision of both a primary and an + alternate e-mail address. + 3. Grant of License. + 1. The Products installed, downloaded, or otherwise + acquired by Customer under this Agreement constitute + or contain copyrighted, trade secret, proprietary + and confidential information of Mentor Graphics or + its licensors, who maintain exclusive title to all + Software and retain all rights not expressly granted + by this Agreement. Mentor Graphics grants to + Customer, subject to payment of applicable license + fees, a nontransferable, nonexclusive license to use + Software as described in the applicable Addenda. The + limited licenses granted under the applicable + Addenda shall continue until the expiration date of + Term-Licensed Products or termination in accordance + with Section 12 below, whichever occurs first. + Mentor Graphics does NOT grant Customer any right to + (a) sublicense or (b) use Software beyond the scope + of this Section without first signing a separate + agreement or Addenda with Mentor Graphics for such + purpose. + 2. License Type. The license type shall be identified + in the applicable Addenda. + 1. Development License: During the Term, if any, + Customer may modify, compile, assemble and + convert the applicable Embedded Software Source + Code into Linkable Object Code and/or + Executable Code form by the number of + Developers specified, for the Processor(s), + Customer's Product(s) and at the Development + Location(s) identified in the applicable + Addenda. + 2. End-User Product License: During the Term, if + any, and unless otherwise specified in the + applicable Addenda, Customer may incorporate or + embed an Executable Code version of the + Embedded Software into the specified number of + copies of Customer's Product(s), using the + Processor Unit(s), and at the Development + Location(s) identified in the applicable + Addenda. Customer may manufacture, brand and + distribute such Customer's Product(s) worldwide + to its End-Users. + 3. Internal Tool License: During the Term, if any, + Customer may use the Development Tools solely: + (a) for internal business purposes and (b) on + the specified number of computer work stations + and sites. Development Tools are licensed on a + per-seat or floating basis, as specified in the + applicable Addenda, and shall not be + distributed to others or delivered in + Customer's Product(s) unless specifically + authorized in an applicable Addenda. + 4. Sourcery CodeBench Professional Edition + License: During the Term specified in the + applicable Addenda, Customer may (a) install + and use the Proprietary Components of the + Software (i) if the license is a node-locked + license, by a single user who uses the Software + on up to two machines provided that only one + copy of the Software is in use at any one time, + or (ii) if the license is a floating license, + by the authorized number of concurrent users on + one or more machines provided that only the + authorized number of copies of the Software are + in use at any one time, and (b) distribute the + Redistributable Components of the Software in + Executable Code form only and only as part of + Customer's Object Code developed with the + Software that provides substantially different + functionality than the Redistributable + Component(s) alone. + 5. Sourcery CodeBench Standard Edition License: + During the Term specified in the applicable + Addenda, Customer may (a) install and use the + Proprietary Components of the Software by a + single user who uses the Software on up to two + machines provided that only one copy of the + Software is in use at any one time, and (b) + distribute the Redistributable Component(s) of + the Software in Executable Code form only and + only as part of Customer's Object Code + developed with the Software that provides + substantially different functionality than the + Redistributable Component(s) alone. + 6. Sourcery CodeBench Personal Edition License: + During the Term specified in the applicable + Addenda, Customer may (a) install and use the + Proprietary Components of the Software by a + single user who uses the Software on one + machine, and (b) distribute the Redistributable + Component(s) of the Software in Executable Code + form only and only as part of Customer Object + Code developed with the Software that provides + substantially different functionality than the + Redistributable Component(s) alone. + 7. Sourcery CodeBench Academic Edition License: + During the Term specified in the applicable + Addenda, Customer may (a) install and use the + Proprietary Components of the Software for + non-commercial, academic purposes only by a + single user who uses the Software on one + machine, and (b) distribute the Redistributable + Component(s) of the Software in Executable Code + form only and only as part of Customer Object + Code developed with the Software that provides + substantially different functionality than the + Redistributable Component(s) alone. + 3. Mentor Graphics may from time to time, in its sole + discretion, lend Products to Customer. For each + loan, Mentor Graphics will identify in writing the + quantity and description of Software loaned, the + authorized location and the Term of the loan. Mentor + Graphics will grant to Customer a temporary license + to use the loaned Software solely for Customer's + internal evaluation in a non-production environment. + Customer shall return to Mentor Graphics or delete + and destroy loaned Software on or before the + expiration of the loan Term. Customer will sign a + certification of such deletion or destruction if + requested by Mentor Graphics. + 4. Beta Code. + 1. Portions or all of certain Products may contain code + for experimental testing and evaluation ("Beta + Code"), which may not be used without Mentor + Graphics' explicit authorization. Upon Mentor + Graphics' authorization, Mentor Graphics grants to + Customer a temporary, nontransferable, nonexclusive + license for experimental use to test and evaluate + the Beta Code without charge for a limited period of + time specified by Mentor Graphics. This grant and + Customer's use of the Beta Code shall not be + construed as marketing or offering to sell a license + to the Beta Code, which Mentor Graphics may choose + not to release commercially in any form. + 2. If Mentor Graphics authorizes Customer to use the + Beta Code, Customer agrees to evaluate and test the + Beta Code under normal conditions as directed by + Mentor Graphics. Customer will contact Mentor + Graphics periodically during Customer's use of the + Beta Code to discuss any malfunctions or suggested + improvements. Upon completion of Customer's + evaluation and testing, Customer will send to Mentor + Graphics a written evaluation of the Beta Code, + including its strengths, weaknesses and recommended + improvements. + 3. Customer agrees to maintain Beta Code in confidence + and shall restrict access to the Beta Code, + including the methods and concepts utilized therein, + solely to those employees and Customer location(s) + authorized by Mentor Graphics to perform beta + testing. Customer agrees that any written + evaluations and all inventions, product + improvements, modifications or developments that + Mentor Graphics conceived or made during or + subsequent to this Agreement, including those based + partly or wholly on Customer's feedback, will be the + exclusive property of Mentor Graphics. Mentor + Graphics will have exclusive rights, title and + interest in all such property. The provisions of + this Subsection 4.3 shall survive termination of + this Agreement. + 5. Restrictions on Use. + 1. Customer may copy Software only as reasonably + necessary to support the authorized use, including + archival and backup purposes. Each copy must include + all notices and legends embedded in Software and + affixed to its medium and container as received from + Mentor Graphics. All copies shall remain the + property of Mentor Graphics or its licensors. Except + where embedded in Executable Code form in Customer's + Product, Customer shall maintain a record of the + number and location of all copies of Software, + including copies merged with other software and + products, and shall make those records available to + Mentor Graphics upon request. Customer shall not + make Products available in any form to any person + other than Customer's employees, authorized + manufacturers or authorized contractors, excluding + Mentor Graphics competitors, whose job performance + requires access and who are under obligations of + confidentiality. Customer shall take appropriate + action to protect the confidentiality of Products + and ensure that any person permitted access does not + disclose or use Products except as permitted by this + Agreement. Customer shall give Mentor Graphics + immediate written notice of any unauthorized + disclosure or use of the Products as soon as + Customer learns or becomes aware of such + unauthorized disclosure or use. + 2. Customer acknowledges that the Products provided + hereunder may contain Source Code which is + proprietary and its confidentiality is of the + highest importance and value to Mentor Graphics. + Customer acknowledges that Mentor Graphics may be + seriously harmed if such Source Code is disclosed in + violation of this Agreement. Except as otherwise + permitted for purposes of interoperability as + specified by applicable and mandatory local law, + Customer shall not reverse-assemble, + reverse-compile, reverse-engineer or in any way + derive any Source Code from Products that are not + provided in Source Code form. Except as embedded in + Executable Code in Customer's Product and + distributed in the ordinary course of business, in + no event shall Customer provide Products to Mentor + Graphics competitors. Log files, data files, rule + files and script files generated by or for the + Software (collectively "Files") constitute and/or + include confidential information of Mentor Graphics. + Customer may share Files with third parties, + excluding Mentor Graphics competitors, provided that + the confidentiality of such Files is protected by + written agreement at least as well as Customer + protects other information of a similar nature or + importance, but in any case with at least reasonable + care. Under no circumstances shall Customer use + Products or allow their use for the purpose of + developing, enhancing or marketing any product that + is in any way competitive with Products, or disclose + to any third party the results of, or information + pertaining to, any benchmark. + 3. Customer may not assign this Agreement or the rights + and duties under it, or relocate, sublicense or + otherwise transfer the Products, whether by + operation of law or otherwise ("Attempted + Transfer"), without Mentor Graphics' prior written + consent, which shall not be unreasonably withheld, + and payment of Mentor Graphics' then-current + applicable relocation and/or transfer fees. Any + Attempted Transfer without Mentor Graphics' prior + written consent shall be a material breach of this + Agreement and may, at Mentor Graphics' option, + result in the immediate termination of the Agreement + and/or the licenses granted under this Agreement. + The terms of this Agreement, including without + limitation the licensing and assignment provisions, + shall be binding upon Customer's permitted + successors in interest and assigns. + 4. Notwithstanding any provision in an OSS license + agreement applicable to a component of the Sourcery + CodeBench Software that permits the redistribution + of such component to a third party in Source Code or + binary form, Customer may not use any Mentor + Graphics trademark, whether registered or + unregistered, in connection with such distribution, + and may not recompile the Open Source Software + components with the --with-pkgversion or + --with-bugurl configuration options that embed + Mentor Graphics' trademarks in the resulting binary. + 5. The provisions of this Section 5 shall survive the + termination of this Agreement. + 6. Support Services. + 1. Except as described in Sections 6.2, 6.3 and 6.4 + below, and unless otherwise specified in any + applicable Addenda to this Agreement, to the extent + Customer purchases support services, Mentor Graphics + will provide Customer updates and technical support + for the number of Developers at the Development + Location(s) for which support is purchased in + accordance with Mentor Graphics' then-current + End-User Software Support Terms located at . + 2. To the extent Customer purchases support services + for Sourcery CodeBench Software, support will be + provided solely in accordance with the provisions of + this Section 6.2. Mentor Graphics shall provide + updates and technical support to Customer as + described herein only on the condition that Customer + uses the Executable Code form of the Sourcery + CodeBench Software for internal use only and/or + distributes the Redistributable Components in + Executable Code form only (except as provided in a + separate redistribution agreement with Mentor + Graphics or as required by the applicable Open + Source license). Any other distribution by Customer + of the Sourcery CodeBench Software (or any component + thereof) in any form, including distribution + permitted by the applicable Open Source license, + shall automatically terminate any remaining support + term. Subject to the foregoing and the payment of + support fees, Mentor Graphics will provide Customer + updates and technical support for the number of + Developers at the Development Location(s) for which + support is purchased in accordance with Mentor + Graphics' then-current Sourcery CodeBench Software + Support Terms located at . + 3. To the extent Customer purchases support services + for Sourcery VSIPL++, Mentor Graphics will provide + Customer updates and technical support for the + number of Developers at the Development Location(s) + for which support is purchased solely in accordance + with Mentor Graphics' then-current Sourcery VSIPL++ + Support Terms located at. . + 4. To the extent Customer purchases support services + for Mentor Embedded Linux, Mentor Graphics will + provide Customer updates and technical support for + the number of Developers at the Development + Location(s) for which support is purchased solely in + accordance with Mentor Graphics' then-current Mentor + Embedded Linux Support Terms located at . + 7. Third Party and Open Source Software. Products may + contain Open Source Software or code distributed under a + proprietary third party license agreement. Please see + applicable Products documentation, including but not + limited to license notice files, header files or source + code for further details. Please see and for additional + rights and obligations governing your use and + distribution of Open Source Software. Customer agrees + that it shall not subject any Product provided by Mentor + Graphics under this Agreement to any Open Source Software + license that does not otherwise apply to such Product. In + the event of conflict between the terms of this + Agreement, any Addenda and an applicable OSS or + proprietary third party agreement, the OSS or proprietary + third party agreement will control solely with respect to + the OSS or proprietary third party software component. + The provisions of this Section 7 shall survive the + termination of this Agreement. + 8. Limited Warranty. + 1. Mentor Graphics warrants that during the warranty + period its standard, generally supported Products, + when properly installed, will substantially conform + to the functional specifications set forth in the + applicable user manual and/or specification. Mentor + Graphics does not warrant that Products will meet + Customer's requirements or that operation of + Products will be uninterrupted or error free. The + warranty period is 90 days starting on the 15th day + after delivery or upon installation, whichever first + occurs. Customer must notify Mentor Graphics in + writing of any nonconformity within the warranty + period. For the avoidance of doubt, this warranty + applies only to the initial shipment of Products + under an Order and does not renew or reset, for + example, with the delivery of (a) Software updates + or (b) authorization codes. This warranty shall not + be valid if Products have been subject to misuse, + unauthorized modification or improper installation. + MENTOR GRAPHICS' ENTIRE LIABILITY AND CUSTOMER'S + EXCLUSIVE REMEDY SHALL BE, AT MENTOR GRAPHICS' + OPTION, EITHER (A) REFUND OF THE PRICE PAID UPON + RETURN OF THE PRODUCTS TO MENTOR GRAPHICS OR (B) + MODIFICATION OR REPLACEMENT OF THE PRODUCTS THAT DO + NOT MEET THIS LIMITED WARRANTY, PROVIDED CUSTOMER + HAS OTHERWISE COMPLIED WITH THIS AGREEMENT. MENTOR + GRAPHICS MAKES NO WARRANTIES WITH RESPECT TO: (A) + SERVICES; OR (B) PRODUCTS PROVIDED AT NO CHARGE, + WHICH ARE PROVIDED "AS IS" UNLESS OTHERWISE AGREED + IN WRITING. + 2. THE WARRANTIES SET FORTH IN THIS SECTION 8 ARE + EXCLUSIVE TO CUSTOMER AND DO NOT APPLY TO ANY + END-USER. NEITHER MENTOR GRAPHICS NOR ITS LICENSORS + MAKE ANY OTHER WARRANTIES, EXPRESS, IMPLIED, OR + STATUTORY, WITH RESPECT TO PRODUCTS OR OTHER + MATERIAL PROVIDED UNDER THIS AGREEMENT. MENTOR + GRAPHICS AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL + IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE AND NON-INFRINGEMENT OF + INTELLECTUAL PROPERTY. + 9. LIMITATION OF LIABILITY. EXCEPT WHERE THIS EXCLUSION OR + RESTRICTION OF LIABILITY WOULD BE VOID OR INEFFECTIVE + UNDER APPLICABLE LAW, AND EXCEPT FOR EITHER PARTY'S + BREACH OF ITS CONFIDENTIALITY OBLIGATIONS, CUSTOMER'S + BREACH OF LICENSING TERMS OR CUSTOMER'S OBLIGATIONS UNDER + SECTION 10, IN NO EVENT SHALL: (A) EITHER PARTY OR ITS + RESPECTIVE LICENSORS BE LIABLE FOR INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES (INCLUDING LOST + PROFITS OR SAVINGS) WHETHER BASED ON CONTRACT, TORT OR + ANY OTHER LEGAL THEORY, EVEN IF SUCH PARTY OR ITS + LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES; AND (B) EITHER PARTY OR ITS RESPECTIVE + LICENSORS' LIABILITY UNDER THIS AGREEMENT, INCLUDING, FOR + THE AVOIDANCE OF DOUBT, LIABILITY FOR ATTORNEYS' FEES OR + COSTS, EXCEED THE GREATER OF THE FEES PAID OR OWING TO + MENTOR GRAPHICS FOR THE PRODUCT OR SERVICE GIVING RISE TO + THE CLAIM OR $500,000 (FIVE HUNDRED THOUSAND U.S. + DOLLARS). NOTWITHSTANDING THE FOREGOING, IN THE CASE + WHERE NO AMOUNT WAS PAID, MENTOR GRAPHICS AND ITS + LICENSORS SHALL HAVE NO LIABILITY FOR ANY DAMAGES + WHATSOEVER. THE PROVISIONS OF THIS SECTION 9 SHALL + SURVIVE THE TERMINATION OF THIS AGREEMENT. + 10. Hazardous Applications. + 1. Customer agrees that Mentor Graphics has no control + over Customer's testing or the specific applications + and use that Customer will make of Products. Mentor + Graphics Products are not specifically designed for + use in the operation of nuclear facilities, aircraft + navigation or communications systems, air traffic + control, life support systems, medical devices or + other applications in which the failure of Mentor + Graphics Products could lead to death, personal + injury, or severe physical or environmental damage + ("Hazardous Applications"). + 2. CUSTOMER ACKNOWLEDGES IT IS SOLELY RESPONSIBLE FOR + TESTING PRODUCTS USED IN HAZARDOUS APPLICATIONS AND + SHALL BE SOLELY LIABLE FOR ANY DAMAGES RESULTING + FROM SUCH USE. NEITHER MENTOR GRAPHICS NOR ITS + LICENSORS SHALL BE LIABLE FOR ANY DAMAGES RESULTING + FROM OR IN CONNECTION WITH THE USE OF PRODUCTS IN + ANY HAZARDOUS APPLICATIONS. + 3. CUSTOMER AGREES TO INDEMNIFY AND HOLD HARMLESS + MENTOR GRAPHICS AND ITS LICENSORS FROM ANY CLAIMS, + LOSS, COST, DAMAGE, EXPENSE OR LIABILITY, INCLUDING + REASONABLE ATTORNEYS' FEES, ARISING OUT OF OR IN + CONNECTION WITH THE USE OF PRODUCTS AS DESCRIBED IN + SECTION 10.1. + 4. THE PROVISIONS OF THIS SECTION 10 SHALL SURVIVE THE + TERMINATION OF THIS AGREEMENT. + 11. Infringement. + 1. Mentor Graphics will defend or settle, at its option + and expense, any action brought against Customer in + the United States, Canada, Japan, or member state of + the European Union which alleges that any standard, + generally supported Product acquired by Customer + hereunder infringes a patent or copyright or + misappropriates a trade secret in such jurisdiction. + Mentor Graphics will pay any costs and damages + finally awarded against Customer that are + attributable to the action. Customer understands and + agrees that as conditions to Mentor Graphics' + obligations under this section Customer must: (a) + notify Mentor Graphics promptly in writing of the + action; (b) provide Mentor Graphics all reasonable + information and assistance to settle or defend the + action; and (c) grant Mentor Graphics sole authority + and control of the defense or settlement of the + action. + 2. If a claim is made under Subsection 11.1 Mentor + Graphics may, at its option and expense, and in + addition to its obligations under Section 11.1, + either (a) replace or modify the Product so that it + becomes noninfringing; or (b) procure for Customer + the right to continue using the Product. If Mentor + Graphics determines that neither of those + alternatives is financially practical or otherwise + reasonably available, Mentor Graphics may require + the return of the Product and refund to Customer any + purchase price or license fee(s) paid. + 3. Mentor Graphics has no liability to Customer if the + claim is based upon: (a) the combination of the + Product with any product not furnished by Mentor + Graphics, where the Product itself is not + infringing; (b) the modification of the Product + other than by Mentor Graphics or as directed by + Mentor Graphics, where the unmodified Product would + not infringe; (c) the use of the infringing Product + when Mentor Graphics has provided Customer with a + current unaltered release of a non-infringing + Product of substantially similar functionality in + accordance with Subsection 11.2(a); (d) the use of + the Product as part of an infringing process; (e) a + product that Customer makes, uses, or sells, where + the Product itself is not infringing; (f) any + Product provided at no charge; (g) any software + provided by Mentor Graphics' licensors who do not + provide such indemnification to Mentor Graphics' + customers; (h) Open Source Software, except to the + extent that the infringement is directly caused by + Mentor Graphics' modifications to such Open Source + Software; or (i) infringement by Customer that is + deemed willful. In the case of (i), Customer shall + reimburse Mentor Graphics for its reasonable + attorneys' fees and other costs related to the + action. + 4. THIS SECTION 11 IS SUBJECT TO SECTION 9 ABOVE AND + STATES: (A) THE ENTIRE LIABILITY OF MENTOR GRAPHICS + AND ITS LICENSORS AND (B) CUSTOMER'S SOLE AND + EXCLUSIVE REMEDY, WITH RESPECT TO ANY ALLEGED PATENT + OR COPYRIGHT INFRINGEMENT OR TRADE SECRET + MISAPPROPRIATION BY ANY PRODUCT PROVIDED UNDER THIS + AGREEMENT. + 12. Termination and Effect of Termination. If a Software + license was provided for limited term use, such license + will automatically terminate at the end of the authorized + Term. + 1. Termination for Breach. This Agreement shall remain + in effect until terminated in accordance with its + terms. Mentor Graphics may terminate this Agreement + and/or any licenses granted under this Agreement, + and Customer will immediately discontinue use and + distribution of Products, if Customer (a) commits + any material breach of any provision of this + Agreement and fails to cure such breach upon 30-days + prior written notice; or (b) becomes insolvent, + files a bankruptcy petition, institutes proceedings + for liquidation or winding up or enters into an + agreement to assign its assets for the benefit of + creditors. Termination of this Agreement or any + license granted hereunder will not affect Customer's + obligation to pay for Products shipped or licenses + granted prior to the termination, which amounts + shall be payable immediately upon the date of + termination. For the avoidance of doubt, nothing in + this Section 12 shall be construed to prevent Mentor + Graphics from seeking immediate injunctive relief in + the event of any threatened or actual breach of + Customer's obligations hereunder. + 2. Effect of Termination. Upon termination of this + Agreement, the rights and obligations of the parties + shall cease except as expressly set forth in this + Agreement. Upon termination or expiration of the + Term, Customer will discontinue use and/or + distribution of Products, and shall return Hardware + and either return to Mentor Graphics or destroy + Software in Customer's possession, including all + copies and documentation, and certify in writing to + Mentor Graphics within ten business days of the + termination date that Customer no longer possesses + any of the affected Products or copies of Software + in any form, except to the extent an Open Source + Software license conflicts with this Section 12.2 + and permits Customer's continued use of any Open + Source Software portion or component of a Product. + Upon termination for Customer's breach, an End-User + may continue its use and/or distribution of + Customer's Product so long as: (a) the End-User was + licensed according to the terms of this Agreement, + if applicable to such End-User, and (b) such + End-User is not in breach of its agreement, if + applicable, nor a party to Customer's breach. + 13. Export. The Products provided hereunder are subject to + regulation by local laws and United States government + agencies, which prohibit export or diversion of certain + products, information about the products, and direct or + indirect products thereof, to certain countries and + certain persons. Customer agrees that it will not export + Products in any manner without first obtaining all + necessary approval from appropriate local and United + States government agencies. Customer acknowledges that + the regulation of product export is in continuous + modification by local governments and/or the United + States Congress and administrative agencies. Customer + agrees to complete all documents and to meet all + requirements arising out of such modifications. + 14. U.S. Government License Rights. Software was developed + entirely at private expense. All Software is commercial + computer software within the meaning of the applicable + acquisition regulations. Accordingly, pursuant to US FAR + 48 CFR 12.212 and DFAR 48 CFR 227.7202, use, duplication + and disclosure of the Software by or for the U.S. + Government or a U.S. Government subcontractor is subject + solely to the terms and conditions set forth in this + Agreement, except for provisions which are contrary to + applicable mandatory federal laws. + 15. Third Party Beneficiary. For any Products licensed under + this Agreement and provided by Customer to End-Users, + Mentor Graphics or the applicable licensor is a third + party beneficiary of the agreement between Customer and + End-User. Mentor Graphics Corporation, Mentor Graphics + (Ireland) Limited, and other licensors may be third party + beneficiaries of this Agreement with the right to enforce + the obligations set forth herein. + 16. Review of License Usage. Customer will monitor the access + to and use of Software. With prior written notice, during + Customer's normal business hours, and no more frequently + than once per calendar year, Mentor Graphics may engage + an internationally recognized accounting firm to review + Customer's software monitoring system, records, accounts + and sublicensing documents deemed relevant by the + internationally recognized accounting firm to confirm + Customer's compliance with the terms of this Agreement or + U.S. or other local export laws. Such review may include + FlexNet (or successor product) report log files that + Customer shall capture and provide at Mentor Graphics' + request. Customer shall make records available in + electronic format and shall fully cooperate with data + gathering to support the license review. Mentor Graphics + shall bear the expense of any such review unless a + material non-compliance is revealed. Mentor Graphics + shall treat as confidential information all Customer + information gained as a result of any request or review + and shall only use or disclose such information as + required by law or to enforce its rights under this + Agreement. Such license review shall be at Mentor + Graphics' expense unless it reveals a material + underpayment of fees of five percent or more, in which + case Customer shall reimburse Mentor Graphics for the + costs of such license review. Customer shall promptly pay + any such fees. If the license review reveals that + Customer has made an overpayment, Mentor Graphics has the + option to either provide the Customer with a refund or + credit the amount overpaid to Customer's next payment. + The provisions of this Section 16 shall survive the + termination of this Agreement. + 17. Controlling Law, Jurisdiction and Dispute Resolution. + This Agreement shall be governed by and construed under + the laws of the State of California, USA, excluding + choice of law rules. All disputes arising out of or in + relation to this Agreement shall be submitted to the + exclusive jurisdiction of the state and federal courts of + California, USA. Nothing in this section shall restrict + Mentor Graphics' right to bring an action (including for + example a motion for injunctive relief) against Customer + or its Subsidiary in the jurisdiction where Customer's or + its Subsidiary's place of business is located. The United + Nations Convention on Contracts for the International + Sale of Goods does not apply to this Agreement. + 18. Severability. If any provision of this Agreement is held + by a court of competent jurisdiction to be void, invalid, + unenforceable or illegal, such provision shall be severed + from this Agreement and the remaining provisions will + remain in full force and effect. + 19. Miscellaneous. This Agreement contains the parties' + entire understanding relating to its subject matter and + supersedes all prior or contemporaneous agreements, + including but not limited to any purchase order terms and + conditions. This Agreement may only be modified in + writing, signed by an authorized representative of each + party. Waiver of terms or excuse of breach must be in + writing and shall not constitute subsequent consent, + waiver or excuse. \ No newline at end of file diff --git a/src/licensedcode/data/rules/proprietary-license_788.yml b/src/licensedcode/data/rules/proprietary-license_788.yml new file mode 100644 index 00000000000..c80fbf9ecfe --- /dev/null +++ b/src/licensedcode/data/rules/proprietary-license_788.yml @@ -0,0 +1,2 @@ +license_expression: proprietary-license +is_license_text: yes diff --git a/src/packagedcode/win_pe.py b/src/packagedcode/win_pe.py index 0420c9b0eaa..f73c2439e57 100644 --- a/src/packagedcode/win_pe.py +++ b/src/packagedcode/win_pe.py @@ -342,6 +342,10 @@ def parse(cls, location): ) if not package_data.license_expression and package_data.declared_license: - package_data.license_expression = models.compute_normalized_license(package_data.declared_license) + if License: + lexp = models.compute_normalized_license(License) + else: + lexp = models.compute_normalized_license(package_data.declared_license) + package_data.license_expression = lexp yield package_data diff --git a/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json b/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json index 55f5f0e3a06..74b4d30a818 100644 --- a/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/libiconv2.dll.package-expected.json @@ -30,7 +30,7 @@ "code_view_url": null, "vcs_url": null, "copyright": "\u00a9 2004 Free Software Foundation ", - "license_expression": "(lgpl-2.1 AND lgpl-2.1-plus) AND unknown", + "license_expression": "lgpl-2.1-plus", "declared_license": { "LegalCopyright": "\u00a9 2004 Free Software Foundation ", "LegalTrademarks": "GNU\u00ae, LibIconv\u00ae, libiconv2\u00ae", diff --git a/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json b/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json index fed506ddde3..91cd2308790 100644 --- a/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/libintl3.dll.package-expected.json @@ -30,7 +30,7 @@ "code_view_url": null, "vcs_url": null, "copyright": "\u00a9 2005 Free Software Foundation ", - "license_expression": "gpl-2.0-plus AND unknown", + "license_expression": "gpl-1.0-plus", "declared_license": { "LegalCopyright": "\u00a9 2005 Free Software Foundation ", "LegalTrademarks": "GNU\u00ae, GetText\u00ae, libintl3\u00ae", diff --git a/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json b/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json index a79d04628af..419cb9d7ff6 100644 --- a/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json +++ b/tests/packagedcode/data/win_pe/tre4.dll.package-expected.json @@ -30,7 +30,7 @@ "code_view_url": null, "vcs_url": null, "copyright": "\u00a9 2008 Ville Laurikari ", - "license_expression": "(gpl-1.0-plus AND gpl-1.0-plus) AND unknown", + "license_expression": "gpl-1.0-plus", "declared_license": { "LegalCopyright": "\u00a9 2008 Ville Laurikari ", "LegalTrademarks": "GnuWin32\u00ae, Tre\u00ae, tre4\u00ae", From 58d42f98eebf80dcf761c4d581c5c2ebd9f75232 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Tue, 4 Oct 2022 01:54:41 +0530 Subject: [PATCH 48/54] Regen test expectations Regen test expectations updating score and rule relevances for detections which were due to updates to give lower scores in cc0 rules. Signed-off-by: Ayan Sinha Mahapatra --- .../stable_copyright-detailed.expected.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml index 1164d01d97a..acf6eb5ff9d 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml @@ -272,14 +272,14 @@ matches: is_license_tag: yes is_license_intro: no matched_text: 'License: cc0-1.0' - - score: '100.0' + - score: '50.0' start_line: 171 end_line: 171 matcher: 2-aho rule_length: 1 matched_length: 1 match_coverage: '100.0' - rule_relevance: 100 + rule_relevance: 50 identifier: cc0-1.0_176.RULE license_expression: cc0-1.0 is_license_text: no @@ -288,14 +288,14 @@ matches: is_license_tag: no is_license_intro: no matched_text: CC0 - - score: '100.0' + - score: '50.0' start_line: 173 end_line: 173 matcher: 2-aho rule_length: 1 matched_length: 1 match_coverage: '100.0' - rule_relevance: 100 + rule_relevance: 50 identifier: cc0-1.0_176.RULE license_expression: cc0-1.0 is_license_text: no @@ -304,14 +304,14 @@ matches: is_license_tag: no is_license_intro: no matched_text: CC0 - - score: '100.0' + - score: '50.0' start_line: 175 end_line: 175 matcher: 2-aho rule_length: 1 matched_length: 1 match_coverage: '100.0' - rule_relevance: 100 + rule_relevance: 50 identifier: cc0-1.0_176.RULE license_expression: cc0-1.0 is_license_text: no From 41fd4b80b3e71d69c63972754af226eae00de990 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 4 Oct 2022 09:47:39 +0200 Subject: [PATCH 49/54] Improve detection of CC0 license We now better detect specific CC0 notices seen in Debian copyright files Signed-off-by: Philippe Ombredanne --- src/licensedcode/data/rules/cc0-1.0_184.RULE | 19 ++++ src/licensedcode/data/rules/cc0-1.0_184.yml | 2 + src/licensedcode/data/rules/cc0-1.0_185.RULE | 8 ++ src/licensedcode/data/rules/cc0-1.0_185.yml | 2 + src/licensedcode/data/rules/cc0-1.0_186.RULE | 21 +++++ src/licensedcode/data/rules/cc0-1.0_186.yml | 4 + src/licensedcode/data/rules/cc0-1.0_187.RULE | 2 + src/licensedcode/data/rules/cc0-1.0_187.yml | 4 + .../stable_copyright-detailed.expected.yml | 92 +++++++------------ 9 files changed, 94 insertions(+), 60 deletions(-) create mode 100644 src/licensedcode/data/rules/cc0-1.0_184.RULE create mode 100644 src/licensedcode/data/rules/cc0-1.0_184.yml create mode 100644 src/licensedcode/data/rules/cc0-1.0_185.RULE create mode 100644 src/licensedcode/data/rules/cc0-1.0_185.yml create mode 100644 src/licensedcode/data/rules/cc0-1.0_186.RULE create mode 100644 src/licensedcode/data/rules/cc0-1.0_186.yml create mode 100644 src/licensedcode/data/rules/cc0-1.0_187.RULE create mode 100644 src/licensedcode/data/rules/cc0-1.0_187.yml diff --git a/src/licensedcode/data/rules/cc0-1.0_184.RULE b/src/licensedcode/data/rules/cc0-1.0_184.RULE new file mode 100644 index 00000000000..6119c41d2e1 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_184.RULE @@ -0,0 +1,19 @@ +Certain owners wish to permanently relinquish those rights to a Work for + the purpose of contributing to a commons of creative, cultural and + scientific works ("Commons") that the public can reliably and without + fear of later claims of infringement build upon, modify, incorporate in + other works, reuse and redistribute as freely as possible in any form + whatsoever and for any purposes, including without limitation commercial + purposes. These owners may contribute to the Commons to promote the + ideal of a free culture and the further production of creative, cultural + and scientific works, or to gain reputation or greater distribution for + their Work in part through the use and efforts of others. + . + For these and/or other purposes and motivations, and without any + expectation of additional consideration or compensation, the person + associating CC0 with a Work (the "Affirmer"), to the extent that he or + she is an owner of Copyright and Related Rights in the Work, voluntarily + elects to apply CC0 to the Work and publicly distribute the Work under + its terms, with knowledge of his or her Copyright and Related Rights in + the Work and the meaning and intended legal effect of CC0 on those + rights. \ No newline at end of file diff --git a/src/licensedcode/data/rules/cc0-1.0_184.yml b/src/licensedcode/data/rules/cc0-1.0_184.yml new file mode 100644 index 00000000000..6b902553cf0 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_184.yml @@ -0,0 +1,2 @@ +license_expression: cc0-1.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/cc0-1.0_185.RULE b/src/licensedcode/data/rules/cc0-1.0_185.RULE new file mode 100644 index 00000000000..ae168946d48 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_185.RULE @@ -0,0 +1,8 @@ +For these and/or other purposes and motivations, and without any + expectation of additional consideration or compensation, the person + associating CC0 with a Work (the "Affirmer"), to the extent that he or + she is an owner of Copyright and Related Rights in the Work, voluntarily + elects to apply CC0 to the Work and publicly distribute the Work under + its terms, with knowledge of his or her Copyright and Related Rights in + the Work and the meaning and intended legal effect of CC0 on those + rights. \ No newline at end of file diff --git a/src/licensedcode/data/rules/cc0-1.0_185.yml b/src/licensedcode/data/rules/cc0-1.0_185.yml new file mode 100644 index 00000000000..6b902553cf0 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_185.yml @@ -0,0 +1,2 @@ +license_expression: cc0-1.0 +is_license_notice: yes diff --git a/src/licensedcode/data/rules/cc0-1.0_186.RULE b/src/licensedcode/data/rules/cc0-1.0_186.RULE new file mode 100644 index 00000000000..f7b8e249242 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_186.RULE @@ -0,0 +1,21 @@ +Certain owners wish to permanently relinquish those rights to a Work for + the purpose of contributing to a commons of creative, cultural and + scientific works ("Commons") that the public can reliably and without + fear of later claims of infringement build upon, modify, incorporate in + other works, reuse and redistribute as freely as possible in any form + whatsoever and for any purposes, including without limitation commercial + purposes. These owners may contribute to the Commons to promote the + ideal of a free culture and the further production of creative, cultural + and scientific works, or to gain reputation or greater distribution for + their Work in part through the use and efforts of others. + . + For these and/or other purposes and motivations, and without any + expectation of additional consideration or compensation, the person + associating CC0 with a Work (the "Affirmer"), to the extent that he or + she is an owner of Copyright and Related Rights in the Work, voluntarily + elects to apply CC0 to the Work and publicly distribute the Work under + its terms, with knowledge of his or her Copyright and Related Rights in + the Work and the meaning and intended legal effect of CC0 on those + rights. + The complete text of the Creative Commons 0 1.0 Universal + can be found in `/usr/share/common-licenses/CC0-1.0'. \ No newline at end of file diff --git a/src/licensedcode/data/rules/cc0-1.0_186.yml b/src/licensedcode/data/rules/cc0-1.0_186.yml new file mode 100644 index 00000000000..577cd3f7ec5 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_186.yml @@ -0,0 +1,4 @@ +license_expression: cc0-1.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/CC0-1.0 diff --git a/src/licensedcode/data/rules/cc0-1.0_187.RULE b/src/licensedcode/data/rules/cc0-1.0_187.RULE new file mode 100644 index 00000000000..d209a2c57b3 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_187.RULE @@ -0,0 +1,2 @@ +text of the Creative Commons 0 1.0 Universal + can be found in `/usr/share/common-licenses/CC0-1.0'. \ No newline at end of file diff --git a/src/licensedcode/data/rules/cc0-1.0_187.yml b/src/licensedcode/data/rules/cc0-1.0_187.yml new file mode 100644 index 00000000000..577cd3f7ec5 --- /dev/null +++ b/src/licensedcode/data/rules/cc0-1.0_187.yml @@ -0,0 +1,4 @@ +license_expression: cc0-1.0 +is_license_notice: yes +referenced_filenames: + - /usr/share/common-licenses/CC0-1.0 diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml index acf6eb5ff9d..1797d41f698 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/main/e/epiphany-browser/stable_copyright-detailed.expected.yml @@ -19,11 +19,11 @@ declared_license: - CC0-1.0 - CC-BY-SA-3.0 - CC-BY-SA-4.0 -license_expression: (gpl-3.0-plus AND gpl-3.0-plus) AND (cc0-1.0 AND cc0-1.0 AND cc0-1.0 AND - cc0-1.0 AND cc0-1.0) AND (gpl-2.0-plus AND gpl-2.0-plus) AND (gpl-3.0-plus AND gpl-3.0-plus) - AND cc-by-sa-3.0 AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus AND lgpl-2.0-plus) - AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (apache-2.0 - AND apache-2.0) AND (gpl-3.0-plus AND gpl-3.0-plus) AND (cc-by-sa-4.0 AND cc-by-sa-4.0) +license_expression: (gpl-3.0-plus AND gpl-3.0-plus) AND (cc0-1.0 AND cc0-1.0) AND (gpl-2.0-plus + AND gpl-2.0-plus) AND (gpl-3.0-plus AND gpl-3.0-plus) AND cc-by-sa-3.0 AND (lgpl-2.0-plus + AND lgpl-2.0-plus) AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (lgpl-2.0-plus AND lgpl-2.0-plus) + AND (lgpl-2.0-plus AND lgpl-2.0-plus) AND (apache-2.0 AND apache-2.0) AND (gpl-3.0-plus AND + gpl-3.0-plus) AND (cc-by-sa-4.0 AND cc-by-sa-4.0) copyright: | 2009-2018 Igalia S.L 2002 Jorn Baayen @@ -272,70 +272,42 @@ matches: is_license_tag: yes is_license_intro: no matched_text: 'License: cc0-1.0' - - score: '50.0' - start_line: 171 - end_line: 171 - matcher: 2-aho - rule_length: 1 - matched_length: 1 - match_coverage: '100.0' - rule_relevance: 50 - identifier: cc0-1.0_176.RULE - license_expression: cc0-1.0 - is_license_text: no - is_license_notice: no - is_license_reference: yes - is_license_tag: no - is_license_intro: no - matched_text: CC0 - - score: '50.0' - start_line: 173 - end_line: 173 - matcher: 2-aho - rule_length: 1 - matched_length: 1 - match_coverage: '100.0' - rule_relevance: 50 - identifier: cc0-1.0_176.RULE - license_expression: cc0-1.0 - is_license_text: no - is_license_notice: no - is_license_reference: yes - is_license_tag: no - is_license_intro: no - matched_text: CC0 - - score: '50.0' - start_line: 175 - end_line: 175 - matcher: 2-aho - rule_length: 1 - matched_length: 1 - match_coverage: '100.0' - rule_relevance: 50 - identifier: cc0-1.0_176.RULE - license_expression: cc0-1.0 - is_license_text: no - is_license_notice: no - is_license_reference: yes - is_license_tag: no - is_license_intro: no - matched_text: CC0 - score: '100.0' - start_line: 178 + start_line: 158 end_line: 179 - matcher: 2-aho - rule_length: 22 - matched_length: 22 + matcher: 1-hash + rule_length: 213 + matched_length: 213 match_coverage: '100.0' rule_relevance: 100 - identifier: cc0-1.0_162.RULE + identifier: cc0-1.0_186.RULE license_expression: cc0-1.0 is_license_text: no - is_license_notice: no - is_license_reference: yes + is_license_notice: yes + is_license_reference: no is_license_tag: no is_license_intro: no matched_text: | + Certain owners wish to permanently relinquish those rights to a Work for + the purpose of contributing to a commons of creative, cultural and + scientific works ("Commons") that the public can reliably and without + fear of later claims of infringement build upon, modify, incorporate in + other works, reuse and redistribute as freely as possible in any form + whatsoever and for any purposes, including without limitation commercial + purposes. These owners may contribute to the Commons to promote the + ideal of a free culture and the further production of creative, cultural + and scientific works, or to gain reputation or greater distribution for + their Work in part through the use and efforts of others. + + For these and/or other purposes and motivations, and without any + expectation of additional consideration or compensation, the person + associating CC0 with a Work (the "Affirmer"), to the extent that he or + she is an owner of Copyright and Related Rights in the Work, voluntarily + elects to apply CC0 to the Work and publicly distribute the Work under + its terms, with knowledge of his or her Copyright and Related Rights in + the Work and the meaning and intended legal effect of CC0 on those + rights. + . The complete text of the Creative Commons 0 1.0 Universal can be found in `/usr/share/common-licenses/CC0-1.0'. - score: '97.8' From 4b4135413a30f62066a616b82a4b34a0bbf6ce62 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Tue, 4 Oct 2022 18:51:25 +0200 Subject: [PATCH 50/54] Improve author detection This is form of author with just a first name and email. Signed-off-by: Philippe Ombredanne --- src/cluecode/copyrights.py | 3 +++ tests/cluecode/data/copyrights/author-name-email.txt | 4 ++++ tests/cluecode/data/copyrights/author-name-email.txt.yml | 4 ++++ 3 files changed, 11 insertions(+) create mode 100644 tests/cluecode/data/copyrights/author-name-email.txt create mode 100644 tests/cluecode/data/copyrights/author-name-email.txt.yml diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index 4dcec586a69..ce8c6ebe87c 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -2620,6 +2620,9 @@ def build_detection_from_node( # author (Panagiotis Tsirigotis) AUTHOR: { +} #author Foo Bar + # Author: Tim (xtimor@gmail.com) + AUTHOR: { + +} #Author Foo joe@email.com + ####################################### # Mixed AUTHOR and COPYRIGHT diff --git a/tests/cluecode/data/copyrights/author-name-email.txt b/tests/cluecode/data/copyrights/author-name-email.txt new file mode 100644 index 00000000000..c5ba7fba1fd --- /dev/null +++ b/tests/cluecode/data/copyrights/author-name-email.txt @@ -0,0 +1,4 @@ + * NMEA library + * URL: http://nmea.sourceforge.net + * Author: Tim (xtimor@gmail.com) + diff --git a/tests/cluecode/data/copyrights/author-name-email.txt.yml b/tests/cluecode/data/copyrights/author-name-email.txt.yml new file mode 100644 index 00000000000..55fa78075db --- /dev/null +++ b/tests/cluecode/data/copyrights/author-name-email.txt.yml @@ -0,0 +1,4 @@ +what: + - authors +authors: + - Tim (xtimor@gmail.com) From ac06b60fa242be6ade1875e86a95920ffb302885 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Wed, 5 Oct 2022 00:43:05 +0530 Subject: [PATCH 51/54] Fix test failures with ignorable authors Signed-off-by: Ayan Sinha Mahapatra --- src/licensedcode/data/licenses/nortel-dasa.yml | 3 +++ src/licensedcode/data/rules/nortel-dasa_1.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/licensedcode/data/licenses/nortel-dasa.yml b/src/licensedcode/data/licenses/nortel-dasa.yml index adc50e81366..4dc4d28346d 100644 --- a/src/licensedcode/data/licenses/nortel-dasa.yml +++ b/src/licensedcode/data/licenses/nortel-dasa.yml @@ -6,3 +6,6 @@ owner: Unspecified spdx_license_key: LicenseRef-scancode-nortel-dasa ignorable_emails: - frank@comsys.dofn.de +ignorable_authors: + - F.Schnekenbuehl + diff --git a/src/licensedcode/data/rules/nortel-dasa_1.yml b/src/licensedcode/data/rules/nortel-dasa_1.yml index d1568572710..eb691072681 100644 --- a/src/licensedcode/data/rules/nortel-dasa_1.yml +++ b/src/licensedcode/data/rules/nortel-dasa_1.yml @@ -3,3 +3,6 @@ is_license_text: yes relevance: 100 ignorable_emails: - frank@comsys.dofn.de +ignorable_authors: + - F.Schnekenbuehl + From 02e1ae39596ac97776677129e15c7a7d75408772 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 5 Oct 2022 08:16:09 +0200 Subject: [PATCH 52/54] Bump version Signed-off-by: Philippe Ombredanne --- setup-mini.cfg | 2 +- setup.cfg | 2 +- src/scancode_config.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/setup-mini.cfg b/setup-mini.cfg index 67bb8ec4f4c..fad373270cd 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit-mini -version = 31.1.1 +version = 31.2.0 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 diff --git a/setup.cfg b/setup.cfg index 09066b9f237..9b58552add9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit -version = 31.1.1 +version = 31.2.0 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 diff --git a/src/scancode_config.py b/src/scancode_config.py index 6019d9826a1..74e6f88001d 100644 --- a/src/scancode_config.py +++ b/src/scancode_config.py @@ -77,7 +77,7 @@ def _create_dir(location): # in case package is not installed or we do not have setutools/pkg_resources # on hand fall back to this version -__version__ = '31.1.0' +__version__ = '31.2.0' # used to warn user when the version is out of date __release_date__ = datetime.datetime(2022, 8, 29) From 43aaa18e7b4f6a6e2a306aed9f3b9b9c2f38473a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 5 Oct 2022 08:49:16 +0200 Subject: [PATCH 53/54] Update the release date for 31.2.0 Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 2 +- src/scancode_config.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 84a519e54fa..cdc02dc801c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -55,7 +55,7 @@ License detection: as an option. -v31.2.0 - 2022-09-29 +v31.2.0 - 2022-10-05 ---------------------------------- This is a minor release with small bug fixes and minor feature updates. diff --git a/src/scancode_config.py b/src/scancode_config.py index 74e6f88001d..ea1ecba9b5f 100644 --- a/src/scancode_config.py +++ b/src/scancode_config.py @@ -80,7 +80,7 @@ def _create_dir(location): __version__ = '31.2.0' # used to warn user when the version is out of date -__release_date__ = datetime.datetime(2022, 8, 29) +__release_date__ = datetime.datetime(2022, 10, 05) # See https://github.com/nexB/scancode-toolkit/issues/2653 for more information # on the data format version From ded56e9120f5fdfb9a1a0309130bb4305a66aacb Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 5 Oct 2022 15:10:57 +0200 Subject: [PATCH 54/54] Correct typo in date and bump to new release Signed-off-by: Philippe Ombredanne --- CHANGELOG.rst | 5 +++++ setup-mini.cfg | 2 +- setup.cfg | 2 +- src/scancode_config.py | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index cdc02dc801c..9b17cb97a70 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -54,6 +54,11 @@ License detection: detected license only once. This data can contain the reference license text as an option. +v31.2.1 - 2022-10-05 +---------------------------------- + +This is a minor release to fix a typo in a date. + v31.2.0 - 2022-10-05 ---------------------------------- diff --git a/setup-mini.cfg b/setup-mini.cfg index fad373270cd..410e7cb6868 100644 --- a/setup-mini.cfg +++ b/setup-mini.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit-mini -version = 31.2.0 +version = 31.2.1 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 diff --git a/setup.cfg b/setup.cfg index aa4ce5574c5..057c3da657b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = scancode-toolkit -version = 31.2.0 +version = 31.2.1 license = Apache-2.0 AND CC-BY-4.0 AND LicenseRef-scancode-other-permissive AND LicenseRef-scancode-other-copyleft # description must be on ONE line https://github.com/pypa/setuptools/issues/1390 diff --git a/src/scancode_config.py b/src/scancode_config.py index ea1ecba9b5f..30966cd1db1 100644 --- a/src/scancode_config.py +++ b/src/scancode_config.py @@ -77,10 +77,10 @@ def _create_dir(location): # in case package is not installed or we do not have setutools/pkg_resources # on hand fall back to this version -__version__ = '31.2.0' +__version__ = '31.2.1' # used to warn user when the version is out of date -__release_date__ = datetime.datetime(2022, 10, 05) +__release_date__ = datetime.datetime(2022, 10, 5) # See https://github.com/nexB/scancode-toolkit/issues/2653 for more information # on the data format version