diff options
| author | Can Eldem <celdem@gitlab.com> | 2020-07-02 09:12:22 +0000 |
|---|---|---|
| committer | Can Eldem <celdem@gitlab.com> | 2020-07-02 09:12:22 +0000 |
| commit | 11c7187a0b9c290437d90af2d53b4d06ae8f4232 (patch) | |
| tree | e4a85d6f6030ea15637e1de9d7b853404c695c84 | |
| parent | 2b8b49ae9fcd960beb0c639f241ce20690e7c7b0 (diff) | |
| parent | a46f75c1caef17519a425d1dcd3ac7687ea6622e (diff) | |
Merge branch 'aeroscan-nl/license-management-upgrade_license_finder' into 'master'v3.13.0
Upgrade LicenseFinder to 6.6.0
See merge request gitlab-org/security-products/license-management!166
39 files changed, 1502 insertions, 202 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 66c7592..4746712 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -51,3 +51,4 @@ license_scanning: name: $TMP_IMAGE variables: LM_REPORT_VERSION: '2.1' + needs: ['build-docker-image'] diff --git a/.gitlab/test.yml b/.gitlab/test.yml index 2399911..9ebb81d 100644 --- a/.gitlab/test.yml +++ b/.gitlab/test.yml @@ -26,6 +26,7 @@ size: BUNDLE_PATH: 'vendor/bundle' GIT_DEPTH: "10" GIT_STRATEGY: fetch + LOG_LEVEL: debug cache: key: ${CI_COMMIT_REF_SLUG} paths: diff --git a/CHANGELOG.md b/CHANGELOG.md index 0deb3b1..aa07fb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # GitLab License management changelog +## v3.13.0 + +- Upgrade to [`license_finder`](https://github.com/pivotal/LicenseFinder/) [`6.6.0`](https://github.com/pivotal/LicenseFinder/releases/tag/v6.6.0). (!162) (!166) + ## v3.12.3 - Update default Java versions to match [new naming convention](https://github.com/halcyon/asdf-java/pull/87 (!176) diff --git a/Gemfile.lock b/Gemfile.lock index 715f380..05c126f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,8 @@ PATH remote: . specs: - license-management (3.12.3) - license_finder (~> 6.0.0) + license-management (3.13.0) + license_finder (~> 6.6.0) GEM remote: https://rubygems.org/ @@ -22,17 +22,16 @@ GEM jaro_winkler (1.5.4) json-schema (2.8.1) addressable (>= 2.4) - license_finder (6.0.0) + license_finder (6.6.0) bundler rubyzip (>= 1, < 3) - thor - toml (= 0.2.0) + thor (~> 1.0.1) + tomlrb (~> 1.3.0) with_env (= 1.1.0) - xml-simple + xml-simple (~> 1.1.5) parallel (1.19.1) parser (2.7.0.4) ast (~> 2.4.0) - parslet (1.8.2) public_suffix (4.0.3) rack (2.2.2) rainbow (3.0.0) @@ -76,8 +75,7 @@ GEM simplecov (~> 0.8) simplecov-html (0.12.2) thor (1.0.1) - toml (0.2.0) - parslet (~> 1.8.0) + tomlrb (1.3.0) unicode-display_width (1.6.1) with_env (1.1.0) xml-simple (1.1.5) @@ -37,6 +37,8 @@ You can then run License Management on some target directory: $ docker run --rm --volume "/path/to/my/project":/code license-management analyze /code ``` +### Running the tests + You can run the tests from inside a docker container: ```sh @@ -126,7 +128,7 @@ Please check the [Release Process documentation](https://gitlab.com/gitlab-org/s 1. Bump the license management version in [CHANGELOG.md][changelog] and in [version.rb][version_rb] 1. Update the `license_finder` version constraint in the [gemspec][gemspec] 1. Run `bundle update license_finder` -1. Test the changes locally using the `bin/test` script. +1. Test the changes by following the instructions for [running the tests](#running-the-tests) 1. Submit a merge request. # Contributing diff --git a/config/.default-gems b/config/.default-gems index c41100b..87e0d78 100644 --- a/config/.default-gems +++ b/config/.default-gems @@ -1,3 +1,3 @@ bundler ~>1.7 bundler ~>2.0 -license_finder ~>6.0.0 +license_finder ~>6.6.0 diff --git a/config/install.sh b/config/install.sh index 5526cb2..ed107c9 100644 --- a/config/install.sh +++ b/config/install.sh @@ -35,15 +35,17 @@ apt-get install -y --no-install-recommends \ libffi-dev \ libicu-dev \ libjpeg-dev \ - liblttng-ctl0 \ + libkrb5-dev \ liblttng-ctl-dev \ + liblttng-ctl0 \ liblzma-dev \ - libncurses5-dev \ libncurses-dev \ + libncurses5-dev \ libncursesw5-dev \ libonig-dev \ libpng-dev \ libpq-dev \ + libre2-dev \ libreadline-dev \ libsqlite3-dev \ libssl-dev \ diff --git a/lib/license/management/version.rb b/lib/license/management/version.rb index 774b99e..eb4ecd4 100644 --- a/lib/license/management/version.rb +++ b/lib/license/management/version.rb @@ -2,6 +2,6 @@ module License module Management - VERSION = '3.12.3' + VERSION = '3.13.0' end end diff --git a/license-management.gemspec b/license-management.gemspec index 252047f..62a08b1 100644 --- a/license-management.gemspec +++ b/license-management.gemspec @@ -27,7 +27,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] - spec.add_dependency 'license_finder', '~> 6.0.0' + spec.add_dependency 'license_finder', '~> 6.6.0' spec.add_development_dependency 'byebug', '~> 11.1' spec.add_development_dependency 'gitlab-styles', '~> 3.1' spec.add_development_dependency 'json-schema', '~> 2.8' diff --git a/spec/fixtures/expected/c/conan/v1.1.json b/spec/fixtures/expected/c/conan/v1.1.json index fe746ed..b4fa0cf 100644 --- a/spec/fixtures/expected/c/conan/v1.1.json +++ b/spec/fixtures/expected/c/conan/v1.1.json @@ -27,4 +27,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/c/conan/v2.0.json b/spec/fixtures/expected/c/conan/v2.0.json index 862a083..33d4475 100644 --- a/spec/fixtures/expected/c/conan/v2.0.json +++ b/spec/fixtures/expected/c/conan/v2.0.json @@ -21,4 +21,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/c/conan/v2.1.json b/spec/fixtures/expected/c/conan/v2.1.json index cc01320..b4da7e4 100644 --- a/spec/fixtures/expected/c/conan/v2.1.json +++ b/spec/fixtures/expected/c/conan/v2.1.json @@ -18,4 +18,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/go/modules/v1.0.json b/spec/fixtures/expected/go/modules/v1.0.json index 1433dbf..4902d39 100644 --- a/spec/fixtures/expected/go/modules/v1.0.json +++ b/spec/fixtures/expected/go/modules/v1.0.json @@ -6,7 +6,7 @@ }, { "count": 2, - "name": "unknown" + "name": "New BSD" }, { "count": 1, @@ -18,7 +18,7 @@ }, { "count": 1, - "name": "New BSD" + "name": "Simplified BSD" } ], "dependencies": [ @@ -63,7 +63,8 @@ }, { "license": { - "name": "unknown" + "name": "New BSD", + "url": "http://opensource.org/licenses/BSD-3-Clause" }, "dependency": { "name": "github.com/pmezard/go-difflib", @@ -127,7 +128,8 @@ }, { "license": { - "name": "unknown" + "name": "Simplified BSD", + "url": "http://opensource.org/licenses/bsd-license" }, "dependency": { "name": "gopkg.in/check.v1", @@ -151,4 +153,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/go/modules/v1.1.json b/spec/fixtures/expected/go/modules/v1.1.json index 6316bec..f0b9112 100644 --- a/spec/fixtures/expected/go/modules/v1.1.json +++ b/spec/fixtures/expected/go/modules/v1.1.json @@ -7,7 +7,7 @@ }, { "count": 2, - "name": "unknown" + "name": "New BSD" }, { "count": 1, @@ -19,7 +19,7 @@ }, { "count": 1, - "name": "New BSD" + "name": "Simplified BSD" } ], "dependencies": [ @@ -83,12 +83,13 @@ { "licenses": [ { - "name": "unknown", - "url": "" + "name": "New BSD", + "url": "http://opensource.org/licenses/BSD-3-Clause" } ], "license": { - "name": "unknown" + "name": "New BSD", + "url": "http://opensource.org/licenses/BSD-3-Clause" }, "dependency": { "name": "github.com/pmezard/go-difflib", @@ -177,12 +178,13 @@ { "licenses": [ { - "name": "unknown", - "url": "" + "name": "Simplified BSD", + "url": "http://opensource.org/licenses/bsd-license" } ], "license": { - "name": "unknown" + "name": "Simplified BSD", + "url": "http://opensource.org/licenses/bsd-license" }, "dependency": { "name": "gopkg.in/check.v1", @@ -216,4 +218,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/go/modules/v2.0.json b/spec/fixtures/expected/go/modules/v2.0.json index 0e60fb8..49289a8 100644 --- a/spec/fixtures/expected/go/modules/v2.0.json +++ b/spec/fixtures/expected/go/modules/v2.0.json @@ -8,9 +8,9 @@ "count": 6 }, { - "id": "unknown", - "name": "unknown", - "url": "", + "id": "BSD-3-Clause", + "name": "BSD 3-Clause \"New\" or \"Revised\" License", + "url": "https://opensource.org/licenses/BSD-3-Clause", "count": 2 }, { @@ -20,9 +20,9 @@ "count": 1 }, { - "id": "BSD-3-Clause", - "name": "BSD 3-Clause \"New\" or \"Revised\" License", - "url": "https://opensource.org/licenses/BSD-3-Clause", + "id": "BSD-2-Clause", + "name": "BSD 2-Clause \"Simplified\" License", + "url": "https://opensource.org/licenses/BSD-2-Clause", "count": 1 }, { @@ -74,7 +74,7 @@ "." ], "licenses": [ - "unknown" + "BSD-3-Clause" ] }, { @@ -129,7 +129,7 @@ "." ], "licenses": [ - "unknown" + "BSD-2-Clause" ] }, { @@ -145,4 +145,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/go/modules/v2.1.json b/spec/fixtures/expected/go/modules/v2.1.json index 1782d06..c86fe8e 100644 --- a/spec/fixtures/expected/go/modules/v2.1.json +++ b/spec/fixtures/expected/go/modules/v2.1.json @@ -7,6 +7,11 @@ "url": "https://opensource.org/licenses/Apache-2.0" }, { + "id": "BSD-2-Clause", + "name": "BSD 2-Clause \"Simplified\" License", + "url": "https://opensource.org/licenses/BSD-2-Clause" + }, + { "id": "BSD-3-Clause", "name": "BSD 3-Clause \"New\" or \"Revised\" License", "url": "https://opensource.org/licenses/BSD-3-Clause" @@ -20,11 +25,6 @@ "id": "MIT", "name": "MIT License", "url": "https://opensource.org/licenses/MIT" - }, - { - "id": "unknown", - "name": "unknown", - "url": "" } ], "dependencies": [ @@ -61,7 +61,7 @@ "package_manager": "go", "path": "go.sum", "licenses": [ - "unknown" + "BSD-3-Clause" ] }, { @@ -106,7 +106,7 @@ "package_manager": "go", "path": "go.sum", "licenses": [ - "unknown" + "BSD-2-Clause" ] }, { @@ -120,4 +120,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/java/gradle/v1.0.json b/spec/fixtures/expected/java/gradle/v1.0.json index f0bb0f5..25fdece 100644 --- a/spec/fixtures/expected/java/gradle/v1.0.json +++ b/spec/fixtures/expected/java/gradle/v1.0.json @@ -362,4 +362,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/java/gradle/v1.1.json b/spec/fixtures/expected/java/gradle/v1.1.json index e337e49..7df7233 100644 --- a/spec/fixtures/expected/java/gradle/v1.1.json +++ b/spec/fixtures/expected/java/gradle/v1.1.json @@ -523,4 +523,4 @@ } } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/java/gradle/v2.0.json b/spec/fixtures/expected/java/gradle/v2.0.json index 4b4a06c..4caca99 100644 --- a/spec/fixtures/expected/java/gradle/v2.0.json +++ b/spec/fixtures/expected/java/gradle/v2.0.json @@ -327,4 +327,4 @@ ] } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/java/maven-multimodules/v1.0.json b/spec/fixtures/expected/java/maven-multimodules/v1.0.json index ac9f480..e165360 100644 --- a/spec/fixtures/expected/java/maven-multimodules/v1.0.json +++ b/spec/fixtures/expected/java/maven-multimodules/v1.0.json @@ -1,94 +1,294 @@ { "licenses": [ - { "count": 15, "name": "Apache 2.0" }, - { "count": 4, "name": "BSD" }, - { "count": 1, "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0" }, - { "count": 1, "name": "unknown" } + { + "count": 15, + "name": "Apache 2.0" + }, + { + "count": 4, + "name": "BSD" + }, + { + "count": 1, + "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0" + }, + { + "count": 1, + "name": "unknown" + } ], "dependencies": [ { - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "asm", "description": "", "pathes": [ "." ] } + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "asm", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "asm-commons", "description": "", "pathes": [ "." ] } + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "asm-commons", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "asm-tree", "description": "", "pathes": [ "." ] } + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "asm-tree", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "commons-fileupload", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "commons-fileupload", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "commons-io", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "commons-io", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "commons-lang3", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "commons-lang3", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "freemarker", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "freemarker", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-annotations", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-annotations", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-core", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-core", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-databind", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-databind", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-dataformat-xml", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-dataformat-xml", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-module-jaxb-annotations", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-module-jaxb-annotations", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "javassist", "description": "", "pathes": [ "." ] } + "license": { + "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "javassist", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "log4j-api", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "log4j-api", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "log4j-api", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "log4j-api", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "log4j-core", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "log4j-core", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "unknown" }, - "dependency": { "name": "model", "description": "", "pathes": [ "." ] } + "license": { + "name": "unknown" + }, + "dependency": { + "name": "model", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "netty-all", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "netty-all", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "ognl", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "ognl", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "stax2-api", "description": "", "pathes": [ "." ] } + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "stax2-api", + "description": "", + "pathes": [ + "." + ] + } }, { - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "struts2-core", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "struts2-core", + "description": "", + "pathes": [ + "." + ] + } } ] } diff --git a/spec/fixtures/expected/java/maven-multimodules/v1.1.json b/spec/fixtures/expected/java/maven-multimodules/v1.1.json index a8e2841..9fb043a 100644 --- a/spec/fixtures/expected/java/maven-multimodules/v1.1.json +++ b/spec/fixtures/expected/java/maven-multimodules/v1.1.json @@ -1,126 +1,353 @@ { "version": "1.1", "licenses": [ - { "count": 15, "name": "Apache 2.0" }, - { "count": 4, "name": "BSD" }, - { "count": 1, "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0" }, - { "count": 1, "name": "unknown" } + { + "count": 15, + "name": "Apache 2.0" + }, + { + "count": 4, + "name": "BSD" + }, + { + "count": 1, + "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0" + }, + { + "count": 1, + "name": "unknown" + } ], "dependencies": [ { "licenses": [ - { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" } + { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + } ], - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "asm", "description": "", "pathes": [ "." ] } + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "asm", + "description": "", + "pathes": [ + "." + ] + } }, { - "licenses": [ { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" } ], - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "asm-commons", "description": "", "pathes": [ "." ] } + "licenses": [ + { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + } + ], + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "asm-commons", + "description": "", + "pathes": [ + "." + ] + } }, { - "licenses": [ { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" } ], - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "asm-tree", "description": "", "pathes": [ "." ] } + "licenses": [ + { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + } + ], + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "asm-tree", + "description": "", + "pathes": [ + "." + ] + } }, { - "licenses": [ { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "commons-fileupload", "description": "", "pathes": [ "." ] } + "licenses": [ + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } + ], + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "commons-fileupload", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "commons-io", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "commons-io", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "commons-lang3", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "commons-lang3", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "freemarker", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "freemarker", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-annotations", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-annotations", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-core", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-core", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-databind", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-databind", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-dataformat-xml", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-dataformat-xml", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "jackson-module-jaxb-annotations", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "jackson-module-jaxb-annotations", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - { "name": "GNU Lesser General Public License version 2.1", "url": "https://opensource.org/licenses/LGPL-2.1" }, - { "name": "MPL 1.1", "url": "" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + { + "name": "GNU Lesser General Public License version 2.1", + "url": "https://opensource.org/licenses/LGPL-2.1" + }, + { + "name": "MPL 1.1", + "url": "" + } ], - "license": { "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "javassist", "description": "", "pathes": [ "." ] } + "license": { + "name": "MPL 1.1, GNU Lesser General Public License version 2.1, Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "javassist", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "log4j-api", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "log4j-api", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "log4j-api", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "log4j-api", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "log4j-core", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "log4j-core", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "unknown", "url": "" } + { + "name": "unknown", + "url": "" + } ], - "license": { "name": "unknown" }, - "dependency": { "name": "model", "description": "", "pathes": [ "." ] } + "license": { + "name": "unknown" + }, + "dependency": { + "name": "model", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ @@ -129,29 +356,74 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "netty-all", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "netty-all", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "ognl", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "ognl", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" } + { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + } ], - "license": { "name": "BSD", "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" }, - "dependency": { "name": "stax2-api", "description": "", "pathes": [ "." ] } + "license": { + "name": "BSD", + "url": "http://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_.28original_.22BSD_License.22.29" + }, + "dependency": { + "name": "stax2-api", + "description": "", + "pathes": [ + "." + ] + } }, { "licenses": [ - { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" } + { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + } ], - "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" }, - "dependency": { "name": "struts2-core", "description": "", "pathes": [ "." ] } + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.txt" + }, + "dependency": { + "name": "struts2-core", + "description": "", + "pathes": [ + "." + ] + } } ] } diff --git a/spec/fixtures/expected/java/maven-multimodules/v2.0.json b/spec/fixtures/expected/java/maven-multimodules/v2.0.json index aa08ef9..594c36e 100644 --- a/spec/fixtures/expected/java/maven-multimodules/v2.0.json +++ b/spec/fixtures/expected/java/maven-multimodules/v2.0.json @@ -33,26 +33,238 @@ } ], "dependencies": [ - { "name": "asm", "url": "", "description": "", "paths": [ "." ], "licenses": [ "BSD-4-Clause" ] }, - { "name": "asm-commons", "url": "", "description": "", "paths": [ "." ], "licenses": [ "BSD-4-Clause" ] }, - { "name": "asm-tree", "url": "", "description": "", "paths": [ "." ], "licenses": [ "BSD-4-Clause" ] }, - { "name": "commons-fileupload", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "commons-io", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "commons-lang3", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "freemarker", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "jackson-annotations", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "jackson-core", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "jackson-databind", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "jackson-dataformat-xml", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "jackson-module-jaxb-annotations", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "javassist", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0", "LGPL-2.1", "MPL-1.1" ] }, - { "name": "log4j-api", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "log4j-api", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "log4j-core", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "model", "url": "", "description": "", "paths": [ "." ], "licenses": [ "unknown" ] }, - { "name": "netty-all", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "ognl", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] }, - { "name": "stax2-api", "url": "", "description": "", "paths": [ "." ], "licenses": [ "BSD-4-Clause" ] }, - { "name": "struts2-core", "url": "", "description": "", "paths": [ "." ], "licenses": [ "Apache-2.0" ] } + { + "name": "asm", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "BSD-4-Clause" + ] + }, + { + "name": "asm-commons", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "BSD-4-Clause" + ] + }, + { + "name": "asm-tree", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "BSD-4-Clause" + ] + }, + { + "name": "commons-fileupload", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "commons-io", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "commons-lang3", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "freemarker", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "jackson-annotations", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "jackson-core", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "jackson-databind", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "jackson-dataformat-xml", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "jackson-module-jaxb-annotations", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "javassist", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0", + "LGPL-2.1", + "MPL-1.1" + ] + }, + { + "name": "log4j-api", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "log4j-api", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "log4j-core", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "model", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "unknown" + ] + }, + { + "name": "netty-all", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "ognl", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + }, + { + "name": "stax2-api", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "BSD-4-Clause" + ] + }, + { + "name": "struts2-core", + "url": "", + "description": "", + "paths": [ + "." + ], + "licenses": [ + "Apache-2.0" + ] + } ] } diff --git a/spec/fixtures/expected/java/maven/v2.1.json b/spec/fixtures/expected/java/maven/v2.1.json index 6855593..a02947a 100644 --- a/spec/fixtures/expected/java/maven/v2.1.json +++ b/spec/fixtures/expected/java/maven/v2.1.json @@ -269,4 +269,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/js/bower/v1.0.json b/spec/fixtures/expected/js/bower/v1.0.json index cbffaa2..f71e6b5 100644 --- a/spec/fixtures/expected/js/bower/v1.0.json +++ b/spec/fixtures/expected/js/bower/v1.0.json @@ -10,7 +10,7 @@ }, { "count": 1, - "name": "New BSD, MIT, ISC, Apache 2.0" + "name": "Simplified BSD, New BSD, MIT, ISC, Apache 2.0" }, { "count": 1, @@ -20,7 +20,7 @@ "dependencies": [ { "license": { - "name": "New BSD, MIT, ISC, Apache 2.0", + "name": "Simplified BSD, New BSD, MIT, ISC, Apache 2.0", "url": "http://en.wikipedia.org/wiki/ISC_license" }, "dependency": { diff --git a/spec/fixtures/expected/js/bower/v1.1.json b/spec/fixtures/expected/js/bower/v1.1.json index 7351634..9abb729 100644 --- a/spec/fixtures/expected/js/bower/v1.1.json +++ b/spec/fixtures/expected/js/bower/v1.1.json @@ -11,7 +11,7 @@ }, { "count": 1, - "name": "New BSD, MIT, ISC, Apache 2.0" + "name": "Simplified BSD, New BSD, MIT, ISC, Apache 2.0" }, { "count": 1, @@ -36,10 +36,14 @@ { "name": "New BSD", "url": "http://opensource.org/licenses/BSD-3-Clause" + }, + { + "name": "Simplified BSD", + "url": "http://opensource.org/licenses/bsd-license" } ], "license": { - "name": "New BSD, MIT, ISC, Apache 2.0", + "name": "Simplified BSD, New BSD, MIT, ISC, Apache 2.0", "url": "http://en.wikipedia.org/wiki/ISC_license" }, "dependency": { diff --git a/spec/fixtures/expected/js/bower/v2.0.json b/spec/fixtures/expected/js/bower/v2.0.json index a8183e6..8d62873 100644 --- a/spec/fixtures/expected/js/bower/v2.0.json +++ b/spec/fixtures/expected/js/bower/v2.0.json @@ -20,6 +20,12 @@ "count": 1 }, { + "id": "BSD-2-Clause", + "name": "BSD 2-Clause \"Simplified\" License", + "url": "https://opensource.org/licenses/BSD-2-Clause", + "count": 1 + }, + { "id": "BSD-3-Clause", "name": "BSD 3-Clause \"New\" or \"Revised\" License", "url": "https://opensource.org/licenses/BSD-3-Clause", @@ -42,6 +48,7 @@ ], "licenses": [ "Apache-2.0", + "BSD-2-Clause", "BSD-3-Clause", "ISC", "MIT" diff --git a/spec/fixtures/expected/js/bower/v2.1.json b/spec/fixtures/expected/js/bower/v2.1.json index 3933832..cf41514 100644 --- a/spec/fixtures/expected/js/bower/v2.1.json +++ b/spec/fixtures/expected/js/bower/v2.1.json @@ -7,6 +7,11 @@ "url": "https://opensource.org/licenses/Apache-2.0" }, { + "id": "BSD-2-Clause", + "name": "BSD 2-Clause \"Simplified\" License", + "url": "https://opensource.org/licenses/BSD-2-Clause" + }, + { "id": "BSD-3-Clause", "name": "BSD 3-Clause \"New\" or \"Revised\" License", "url": "https://opensource.org/licenses/BSD-3-Clause" @@ -35,6 +40,7 @@ "path": "bower.json", "licenses": [ "Apache-2.0", + "BSD-2-Clause", "BSD-3-Clause", "ISC", "MIT" @@ -122,4 +128,4 @@ ] } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/js/npm/v1.0.json b/spec/fixtures/expected/js/npm/v1.0.json index 4978ad4..fecd1ac 100644 --- a/spec/fixtures/expected/js/npm/v1.0.json +++ b/spec/fixtures/expected/js/npm/v1.0.json @@ -70,4 +70,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/js/npm/v1.1.json b/spec/fixtures/expected/js/npm/v1.1.json index 8294741..4c2e0dd 100644 --- a/spec/fixtures/expected/js/npm/v1.1.json +++ b/spec/fixtures/expected/js/npm/v1.1.json @@ -99,4 +99,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/js/npm/v2.0.json b/spec/fixtures/expected/js/npm/v2.0.json index dcba5ef..5419d06 100644 --- a/spec/fixtures/expected/js/npm/v2.0.json +++ b/spec/fixtures/expected/js/npm/v2.0.json @@ -61,4 +61,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/js/yarn/v1.0.json b/spec/fixtures/expected/js/yarn/v1.0.json index 3264ddb..f944b03 100644 --- a/spec/fixtures/expected/js/yarn/v1.0.json +++ b/spec/fixtures/expected/js/yarn/v1.0.json @@ -15953,4 +15953,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/js/yarn/v1.1.json b/spec/fixtures/expected/js/yarn/v1.1.json index d197e7b..ddb581f 100644 --- a/spec/fixtures/expected/js/yarn/v1.1.json +++ b/spec/fixtures/expected/js/yarn/v1.1.json @@ -22770,4 +22770,4 @@ } } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/js/yarn/v2.0.json b/spec/fixtures/expected/js/yarn/v2.0.json index 7553d39..5819cd3 100644 --- a/spec/fixtures/expected/js/yarn/v2.0.json +++ b/spec/fixtures/expected/js/yarn/v2.0.json @@ -12632,4 +12632,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/python/pipenv/v2.1.json b/spec/fixtures/expected/python/pipenv/v2.1.json index 2a5f945..30161e1 100644 --- a/spec/fixtures/expected/python/pipenv/v2.1.json +++ b/spec/fixtures/expected/python/pipenv/v2.1.json @@ -60,4 +60,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/expected/ruby/bundler/v2.1.json b/spec/fixtures/expected/ruby/bundler/v2.1.json index 9171241..ae83b84 100644 --- a/spec/fixtures/expected/ruby/bundler/v2.1.json +++ b/spec/fixtures/expected/ruby/bundler/v2.1.json @@ -163,4 +163,4 @@ ] } ] -}
\ No newline at end of file +} diff --git a/spec/fixtures/ruby/bundler-gem-conflict/Gemfile b/spec/fixtures/ruby/bundler-gem-conflict/Gemfile new file mode 100644 index 0000000..68beefb --- /dev/null +++ b/spec/fixtures/ruby/bundler-gem-conflict/Gemfile @@ -0,0 +1,66 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +ruby '2.7.1' + +gem 'rails', '~> 6.0' +gem 'pg' +gem 'devise' +gem 'acts-as-taggable-on', '~> 6.0' +gem 'mini_magick' +gem 'google-cloud-storage', "~> 1.8" +gem 'pundit' +gem 'pry' +gem 'postmark-rails' +# gem "passenger", ">= 5.0.25", require: "phusion_passenger/rack_handler" +gem 'puma' +gem 'httparty' +gem 'sidekiq' +gem 'sidekiq-failures', '~> 1.0' +gem 'sidekiq_alive' + +gem 'rgeo' +gem 'rgeo-geojson' +gem 'geocoder' + +gem 'bundler' +gem 'therubyracer' + +gem 'money-rails' +gem 'creek' +gem "sentry-raven" +gem "skylight" + +gem 'simple_token_authentication' +gem 'grape' +gem 'grape-entity' +gem 'grape-swagger' +gem 'grape-swagger-entity' + +gem 'kaminari' +gem 'caxlsx' + +# Reduces boot times through caching; required in config/boot.rb +gem 'bootsnap', '>= 1.1.0', require: false + +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] + gem 'rspec-rails' + gem 'guard-rspec', require: false + gem 'factory_bot_rails' + gem 'simplecov', require: false, group: :test + gem 'deep-cover' +end + +group :development do + # Access an interactive console on exception pages or by calling 'console' anywhere in the code. + gem 'listen', '>= 3.0.5', '< 3.2' + # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + gem 'spring' + gem 'spring-watcher-listen', '~> 2.0.0' + gem 'letter_opener' +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/spec/fixtures/ruby/bundler-gem-conflict/Gemfile.lock b/spec/fixtures/ruby/bundler-gem-conflict/Gemfile.lock new file mode 100644 index 0000000..d0e49df --- /dev/null +++ b/spec/fixtures/ruby/bundler-gem-conflict/Gemfile.lock @@ -0,0 +1,489 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.0.3.1) + actionpack (= 6.0.3.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.0.3.1) + actionpack (= 6.0.3.1) + activejob (= 6.0.3.1) + activerecord (= 6.0.3.1) + activestorage (= 6.0.3.1) + activesupport (= 6.0.3.1) + mail (>= 2.7.1) + actionmailer (6.0.3.1) + actionpack (= 6.0.3.1) + actionview (= 6.0.3.1) + activejob (= 6.0.3.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.0.3.1) + actionview (= 6.0.3.1) + activesupport (= 6.0.3.1) + rack (~> 2.0, >= 2.0.8) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.0.3.1) + actionpack (= 6.0.3.1) + activerecord (= 6.0.3.1) + activestorage (= 6.0.3.1) + activesupport (= 6.0.3.1) + nokogiri (>= 1.8.5) + actionview (6.0.3.1) + activesupport (= 6.0.3.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.0.3.1) + activesupport (= 6.0.3.1) + globalid (>= 0.3.6) + activemodel (6.0.3.1) + activesupport (= 6.0.3.1) + activerecord (6.0.3.1) + activemodel (= 6.0.3.1) + activesupport (= 6.0.3.1) + activestorage (6.0.3.1) + actionpack (= 6.0.3.1) + activejob (= 6.0.3.1) + activerecord (= 6.0.3.1) + marcel (~> 0.3.1) + activesupport (6.0.3.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + zeitwerk (~> 2.2, >= 2.2.2) + acts-as-taggable-on (6.5.0) + activerecord (>= 5.0, < 6.1) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + ast (2.4.0) + backports (3.17.2) + bcrypt (3.1.13) + binding_of_caller (0.8.0) + debug_inspector (>= 0.0.1) + bootsnap (1.4.6) + msgpack (~> 1.0) + builder (3.2.4) + byebug (11.1.3) + caxlsx (3.0.1) + htmlentities (~> 4.3, >= 4.3.4) + mimemagic (~> 0.3) + nokogiri (~> 1.10, >= 1.10.4) + rubyzip (>= 1.3.0, < 3) + coderay (1.1.2) + concurrent-ruby (1.1.6) + connection_pool (2.2.2) + crass (1.0.6) + creek (2.5.2) + nokogiri (>= 1.10.0) + rubyzip (>= 1.0.0) + debug_inspector (0.0.3) + declarative (0.0.10) + declarative-option (0.1.0) + deep-cover (0.8.1) + deep-cover-core (= 0.8.1) + highline + thor (>= 0.20.3) + with_progress + deep-cover-core (0.8.1) + backports (>= 3.11.0) + binding_of_caller + parser (>= 2.5) + pry + term-ansicolor + terminal-table + devise (4.7.1) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + diff-lcs (1.3) + digest-crc (0.5.1) + docile (1.3.2) + dry-configurable (0.11.5) + concurrent-ruby (~> 1.0) + dry-core (~> 0.4, >= 0.4.7) + dry-equalizer (~> 0.2) + dry-container (0.7.2) + concurrent-ruby (~> 1.0) + dry-configurable (~> 0.1, >= 0.1.3) + dry-core (0.4.9) + concurrent-ruby (~> 1.0) + dry-equalizer (0.3.0) + dry-inflector (0.2.0) + dry-logic (1.0.6) + concurrent-ruby (~> 1.0) + dry-core (~> 0.2) + dry-equalizer (~> 0.2) + dry-types (1.4.0) + concurrent-ruby (~> 1.0) + dry-container (~> 0.3) + dry-core (~> 0.4, >= 0.4.4) + dry-equalizer (~> 0.3) + dry-inflector (~> 0.1, >= 0.1.2) + dry-logic (~> 1.0, >= 1.0.2) + erubi (1.9.0) + factory_bot (5.2.0) + activesupport (>= 4.2.0) + factory_bot_rails (5.2.0) + factory_bot (~> 5.2.0) + railties (>= 4.2.0) + faraday (1.0.1) + multipart-post (>= 1.2, < 3) + ffi (1.12.2) + formatador (0.2.5) + geocoder (1.6.3) + globalid (0.4.2) + activesupport (>= 4.2.0) + google-api-client (0.39.4) + addressable (~> 2.5, >= 2.5.1) + googleauth (~> 0.9) + httpclient (>= 2.8.1, < 3.0) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + signet (~> 0.12) + google-cloud-core (1.5.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.3.1) + faraday (>= 0.17.3, < 2.0) + google-cloud-errors (1.0.0) + google-cloud-storage (1.26.1) + addressable (~> 2.5) + digest-crc (~> 0.4) + google-api-client (~> 0.33) + google-cloud-core (~> 1.2) + googleauth (~> 0.9) + mini_mime (~> 1.0) + googleauth (0.12.0) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (~> 0.14) + grape (1.3.2) + activesupport + builder + dry-types (>= 1.1) + mustermann-grape (~> 1.0.0) + rack (>= 1.3.0) + rack-accept + grape-entity (0.8.0) + activesupport (>= 3.0.0) + multi_json (>= 1.3.2) + grape-swagger (1.1.0) + grape (~> 1.3.0) + grape-swagger-entity (0.3.4) + grape-entity (>= 0.5.0) + grape-swagger (>= 0.31.0) + guard (2.16.2) + formatador (>= 0.2.4) + listen (>= 2.7, < 4.0) + lumberjack (>= 1.0.12, < 2.0) + nenv (~> 0.1) + notiffany (~> 0.0) + pry (>= 0.9.12) + shellany (~> 0.0) + thor (>= 0.18.1) + guard-compat (1.2.1) + guard-rspec (4.7.3) + guard (~> 2.1) + guard-compat (~> 1.1) + rspec (>= 2.99.0, < 4.0) + highline (2.0.3) + htmlentities (4.3.4) + httparty (0.18.0) + mime-types (~> 3.0) + multi_xml (>= 0.5.2) + httpclient (2.8.3) + i18n (1.8.2) + concurrent-ruby (~> 1.0) + json (2.3.0) + jwt (2.2.1) + kaminari (1.2.0) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.2.0) + kaminari-activerecord (= 1.2.0) + kaminari-core (= 1.2.0) + kaminari-actionview (1.2.0) + actionview + kaminari-core (= 1.2.0) + kaminari-activerecord (1.2.0) + activerecord + kaminari-core (= 1.2.0) + kaminari-core (1.2.0) + launchy (2.5.0) + addressable (~> 2.7) + letter_opener (1.7.0) + launchy (~> 2.2) + libv8 (3.16.14.19) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + loofah (2.5.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + lumberjack (1.2.4) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (0.3.3) + mimemagic (~> 0.3.2) + memoist (0.16.2) + method_source (1.0.0) + mime-types (3.3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2020.0512) + mimemagic (0.3.5) + mini_magick (4.10.1) + mini_mime (1.0.2) + mini_portile2 (2.4.0) + minitest (5.14.1) + monetize (1.9.4) + money (~> 6.12) + money (6.13.7) + i18n (>= 0.6.4, <= 2) + money-rails (1.13.3) + activesupport (>= 3.0) + monetize (~> 1.9.0) + money (~> 6.13.2) + railties (>= 3.0) + msgpack (1.3.3) + multi_json (1.14.1) + multi_xml (0.6.0) + multipart-post (2.1.1) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) + mustermann-grape (1.0.1) + mustermann (>= 1.0.0) + nenv (0.3.0) + nio4r (2.5.2) + nokogiri (1.10.9) + mini_portile2 (~> 2.4.0) + notiffany (0.1.3) + nenv (~> 0.1) + shellany (~> 0.0) + orm_adapter (0.5.0) + os (1.1.0) + parser (2.7.1.2) + ast (~> 2.4.0) + pg (1.2.3) + postmark (1.21.1) + json + postmark-rails (0.20.0) + actionmailer (>= 3.0.0) + postmark (~> 1.15) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + public_suffix (4.0.5) + puma (4.3.5) + nio4r (~> 2.0) + pundit (2.1.0) + activesupport (>= 3.0.0) + rack (2.2.2) + rack-accept (0.4.5) + rack (>= 0.4) + rack-protection (2.0.8.1) + rack + rack-test (1.1.0) + rack (>= 1.0, < 3) + rails (6.0.3.1) + actioncable (= 6.0.3.1) + actionmailbox (= 6.0.3.1) + actionmailer (= 6.0.3.1) + actionpack (= 6.0.3.1) + actiontext (= 6.0.3.1) + actionview (= 6.0.3.1) + activejob (= 6.0.3.1) + activemodel (= 6.0.3.1) + activerecord (= 6.0.3.1) + activestorage (= 6.0.3.1) + activesupport (= 6.0.3.1) + bundler (>= 1.3.0) + railties (= 6.0.3.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.3.0) + loofah (~> 2.3) + railties (6.0.3.1) + actionpack (= 6.0.3.1) + activesupport (= 6.0.3.1) + method_source + rake (>= 0.8.7) + thor (>= 0.20.3, < 2.0) + rake (13.0.1) + rb-fsevent (0.10.4) + rb-inotify (0.10.1) + ffi (~> 1.0) + redis (4.1.4) + ref (2.0.0) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + responders (3.0.0) + actionpack (>= 5.0) + railties (>= 5.0) + retriable (3.1.2) + rgeo (2.1.1) + rgeo-geojson (2.1.1) + rgeo (>= 1.0.0) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-core (3.9.2) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-mocks (3.9.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-rails (4.0.1) + actionpack (>= 4.2) + activesupport (>= 4.2) + railties (>= 4.2) + rspec-core (~> 3.9) + rspec-expectations (~> 3.9) + rspec-mocks (~> 3.9) + rspec-support (~> 3.9) + rspec-support (3.9.3) + ruby-progressbar (1.10.1) + ruby2_keywords (0.0.2) + ruby_dep (1.5.0) + rubyzip (2.3.0) + sentry-raven (3.0.0) + faraday (>= 1.0) + shellany (0.0.1) + sidekiq (6.0.7) + connection_pool (>= 2.2.2) + rack (~> 2.0) + rack-protection (>= 2.0.0) + redis (>= 4.1.0) + sidekiq-failures (1.0.0) + sidekiq (>= 4.0.0) + sidekiq_alive (2.0.1) + sidekiq + sinatra + signet (0.14.0) + addressable (~> 2.3) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simple_token_authentication (1.17.0) + actionmailer (>= 3.2.6, < 7) + actionpack (>= 3.2.6, < 7) + devise (>= 3.2, < 6) + simplecov (0.18.5) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov-html (0.12.2) + sinatra (2.0.8.1) + mustermann (~> 1.0) + rack (~> 2.0) + rack-protection (= 2.0.8.1) + tilt (~> 2.0) + skylight (4.3.0) + skylight-core (= 4.3.0) + skylight-core (4.3.0) + activesupport (>= 4.2.0) + spring (2.1.0) + spring-watcher-listen (2.0.1) + listen (>= 2.7, < 4.0) + spring (>= 1.2, < 3.0) + sprockets (4.0.0) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.1) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sync (0.5.0) + term-ansicolor (1.7.1) + tins (~> 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + therubyracer (0.12.3) + libv8 (~> 3.16.14.15) + ref + thor (1.0.1) + thread_safe (0.3.6) + tilt (2.0.10) + tins (1.25.0) + sync + tzinfo (1.2.7) + thread_safe (~> 0.1) + uber (0.1.0) + unicode-display_width (1.7.0) + warden (1.2.8) + rack (>= 2.0.6) + websocket-driver (0.7.1) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.4) + with_progress (1.0.1) + ruby-progressbar (~> 1.4) + zeitwerk (2.3.0) + +PLATFORMS + ruby + +DEPENDENCIES + acts-as-taggable-on (~> 6.0) + bootsnap (>= 1.1.0) + bundler + byebug + caxlsx + creek + deep-cover + devise + factory_bot_rails + geocoder + google-cloud-storage (~> 1.8) + grape + grape-entity + grape-swagger + grape-swagger-entity + guard-rspec + httparty + kaminari + letter_opener + listen (>= 3.0.5, < 3.2) + mini_magick + money-rails + pg + postmark-rails + pry + puma + pundit + rails (~> 6.0) + rgeo + rgeo-geojson + rspec-rails + sentry-raven + sidekiq + sidekiq-failures (~> 1.0) + sidekiq_alive + simple_token_authentication + simplecov + skylight + spring + spring-watcher-listen (~> 2.0.0) + therubyracer + tzinfo-data + +RUBY VERSION + ruby 2.7.1p83 + +BUNDLED WITH + 2.1.4 diff --git a/spec/integration/js/bower_spec.rb b/spec/integration/js/bower_spec.rb index cc7cf9d..6d51394 100644 --- a/spec/integration/js/bower_spec.rb +++ b/spec/integration/js/bower_spec.rb @@ -12,7 +12,7 @@ RSpec.describe "bower" do specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).to match_array(['cli', 'ev-emitter', 'example-project', 'fizzy-ui-utils', 'get-size', 'jquery', 'masonry-layout', 'matches-selector', 'outlayer', 'stimulus.umd']) } - specify { expect(subject.licenses_for('cli')).to match_array(['Apache-2.0', 'BSD-3-Clause', 'ISC', 'MIT']) } + specify { expect(subject.licenses_for('cli')).to match_array(['Apache-2.0', 'BSD-2-Clause', 'BSD-3-Clause', 'ISC', 'MIT']) } specify { expect(subject.licenses_for('ev-emitter')).to match_array(['MIT']) } specify { expect(subject.licenses_for('example-project')).to match_array(['ISC']) } specify { expect(subject.licenses_for('fizzy-ui-utils')).to match_array(['MIT']) } diff --git a/spec/integration/ruby/bundler_spec.rb b/spec/integration/ruby/bundler_spec.rb index f0464fe..428b357 100644 --- a/spec/integration/ruby/bundler_spec.rb +++ b/spec/integration/ruby/bundler_spec.rb @@ -139,4 +139,36 @@ BUNDLED WITH expect(report).to match_schema end end + + context "when parsing a project with versions of gems that conflict with license_finder" do + subject { runner.scan } + + before do + runner.mount(dir: fixture_file('ruby/bundler-gem-conflict')) + end + + specify do + expect(subject).to match_schema + expect(subject[:licenses]).not_to be_empty + expect(subject[:dependencies]).not_to be_empty + expect(subject.dependency_names).to include('rails') + end + end + + context "when scanning the `gitlab` project" do + subject { runner.scan } + + before do + runner.clone('https://gitlab.com/gitlab-org/gitlab.git') + system("rm #{runner.project_path}/config/dependency_decisions.yml") + end + + specify do + expect(subject).to match_schema + expect(subject[:licenses]).not_to be_empty + expect(subject[:dependencies]).not_to be_empty + expect(subject.dependency_names).to include('rails') + expect(subject.dependency_names).to include('vue') + end + end end |
