license_finder-rubyzip3 7.2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. checksums.yaml +7 -0
  2. data/.force-build +0 -0
  3. data/.github/dependabot.yml +16 -0
  4. data/.gitignore +13 -0
  5. data/.pre-commit-hooks.yaml +10 -0
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +84 -0
  8. data/CHANGELOG.md +1066 -0
  9. data/CONTRIBUTING.md +122 -0
  10. data/Dockerfile +275 -0
  11. data/Gemfile +2 -0
  12. data/LICENSE +22 -0
  13. data/README.md +597 -0
  14. data/Rakefile +77 -0
  15. data/TODO.md +12 -0
  16. data/VERSION +1 -0
  17. data/appveyor.yml +21 -0
  18. data/bin/license_finder +6 -0
  19. data/bin/license_finder_pip.py +43 -0
  20. data/ci/pipelines/pull-request.yml.erb +138 -0
  21. data/ci/pipelines/release.yml.erb +176 -0
  22. data/ci/scripts/containerize-tests.sh +14 -0
  23. data/ci/scripts/pushscript.sh +31 -0
  24. data/ci/scripts/run-rubocop.sh +15 -0
  25. data/ci/scripts/run-tests.sh +41 -0
  26. data/ci/scripts/test.ps1 +81 -0
  27. data/ci/scripts/updateChangelog.sh +84 -0
  28. data/ci/tasks/build-and-push-gem.yml +10 -0
  29. data/ci/tasks/build-windows.yml +6 -0
  30. data/ci/tasks/build.yml +16 -0
  31. data/ci/tasks/rubocop.yml +15 -0
  32. data/ci/tasks/run-tests.yml +10 -0
  33. data/ci/tasks/update-changelog.yml +18 -0
  34. data/dlf +21 -0
  35. data/examples/Gemfile +4 -0
  36. data/examples/custom_erb_template.rb +24 -0
  37. data/examples/extract_license_data.rb +63 -0
  38. data/examples/sample_template.erb +7 -0
  39. data/lib/license_finder/cli/approvals.rb +28 -0
  40. data/lib/license_finder/cli/base.rb +113 -0
  41. data/lib/license_finder/cli/dependencies.rb +44 -0
  42. data/lib/license_finder/cli/ignored_dependencies.rb +32 -0
  43. data/lib/license_finder/cli/ignored_groups.rb +32 -0
  44. data/lib/license_finder/cli/inherited_decisions.rb +50 -0
  45. data/lib/license_finder/cli/licenses.rb +31 -0
  46. data/lib/license_finder/cli/main.rb +229 -0
  47. data/lib/license_finder/cli/makes_decisions.rb +38 -0
  48. data/lib/license_finder/cli/patched_thor.rb +33 -0
  49. data/lib/license_finder/cli/permitted_licenses.rb +32 -0
  50. data/lib/license_finder/cli/project_name.rb +32 -0
  51. data/lib/license_finder/cli/restricted_licenses.rb +32 -0
  52. data/lib/license_finder/cli.rb +20 -0
  53. data/lib/license_finder/configuration.rb +197 -0
  54. data/lib/license_finder/core.rb +121 -0
  55. data/lib/license_finder/decision_applier.rb +70 -0
  56. data/lib/license_finder/decisions.rb +334 -0
  57. data/lib/license_finder/decisions_factory.rb +13 -0
  58. data/lib/license_finder/diff.rb +51 -0
  59. data/lib/license_finder/license/any_matcher.rb +15 -0
  60. data/lib/license_finder/license/definitions.rb +498 -0
  61. data/lib/license_finder/license/header_matcher.rb +17 -0
  62. data/lib/license_finder/license/matcher.rb +24 -0
  63. data/lib/license_finder/license/none_matcher.rb +11 -0
  64. data/lib/license_finder/license/template.rb +19 -0
  65. data/lib/license_finder/license/templates/0BSD.txt +10 -0
  66. data/lib/license_finder/license/templates/AGPL3.txt +661 -0
  67. data/lib/license_finder/license/templates/Apache1_1.txt +16 -0
  68. data/lib/license_finder/license/templates/Apache2.txt +170 -0
  69. data/lib/license_finder/license/templates/Artistic.txt +128 -0
  70. data/lib/license_finder/license/templates/BSD.txt +24 -0
  71. data/lib/license_finder/license/templates/CC01.txt +30 -0
  72. data/lib/license_finder/license/templates/CC01_alt.txt +31 -0
  73. data/lib/license_finder/license/templates/CDDL1.txt +131 -0
  74. data/lib/license_finder/license/templates/CDDL1_1.txt +123 -0
  75. data/lib/license_finder/license/templates/CPL1.txt +217 -0
  76. data/lib/license_finder/license/templates/EPL1.txt +86 -0
  77. data/lib/license_finder/license/templates/EPL2.txt +80 -0
  78. data/lib/license_finder/license/templates/GPLv2.txt +339 -0
  79. data/lib/license_finder/license/templates/GPLv3.txt +674 -0
  80. data/lib/license_finder/license/templates/ISC.txt +2 -0
  81. data/lib/license_finder/license/templates/LGPL.txt +165 -0
  82. data/lib/license_finder/license/templates/LGPL2_1.txt +169 -0
  83. data/lib/license_finder/license/templates/MIT.txt +9 -0
  84. data/lib/license_finder/license/templates/MPL1_1.txt +469 -0
  85. data/lib/license_finder/license/templates/MPL2.txt +373 -0
  86. data/lib/license_finder/license/templates/NewBSD.txt +21 -0
  87. data/lib/license_finder/license/templates/OFL.txt +91 -0
  88. data/lib/license_finder/license/templates/Python.txt +47 -0
  89. data/lib/license_finder/license/templates/Ruby.txt +52 -0
  90. data/lib/license_finder/license/templates/SimplifiedBSD.txt +19 -0
  91. data/lib/license_finder/license/templates/Unlicense.txt +24 -0
  92. data/lib/license_finder/license/templates/WTFPL.txt +14 -0
  93. data/lib/license_finder/license/templates/Zlib.txt +17 -0
  94. data/lib/license_finder/license/text.rb +49 -0
  95. data/lib/license_finder/license.rb +123 -0
  96. data/lib/license_finder/license_aggregator.rb +59 -0
  97. data/lib/license_finder/logger.rb +69 -0
  98. data/lib/license_finder/manual_licenses.rb +79 -0
  99. data/lib/license_finder/package.rb +195 -0
  100. data/lib/license_finder/package_delta.rb +61 -0
  101. data/lib/license_finder/package_manager.rb +183 -0
  102. data/lib/license_finder/package_managers/bower.rb +37 -0
  103. data/lib/license_finder/package_managers/bundler.rb +110 -0
  104. data/lib/license_finder/package_managers/cargo.rb +38 -0
  105. data/lib/license_finder/package_managers/carthage.rb +68 -0
  106. data/lib/license_finder/package_managers/cocoa_pods.rb +66 -0
  107. data/lib/license_finder/package_managers/composer.rb +63 -0
  108. data/lib/license_finder/package_managers/conan.rb +70 -0
  109. data/lib/license_finder/package_managers/conda.rb +131 -0
  110. data/lib/license_finder/package_managers/dep.rb +45 -0
  111. data/lib/license_finder/package_managers/dotnet.rb +86 -0
  112. data/lib/license_finder/package_managers/erlangmk.rb +50 -0
  113. data/lib/license_finder/package_managers/glide.rb +42 -0
  114. data/lib/license_finder/package_managers/go_15vendorexperiment.rb +87 -0
  115. data/lib/license_finder/package_managers/go_dep.rb +80 -0
  116. data/lib/license_finder/package_managers/go_modules.rb +93 -0
  117. data/lib/license_finder/package_managers/go_workspace.rb +117 -0
  118. data/lib/license_finder/package_managers/govendor.rb +73 -0
  119. data/lib/license_finder/package_managers/gradle.rb +99 -0
  120. data/lib/license_finder/package_managers/gvt.rb +69 -0
  121. data/lib/license_finder/package_managers/maven.rb +69 -0
  122. data/lib/license_finder/package_managers/mix.rb +131 -0
  123. data/lib/license_finder/package_managers/npm.rb +70 -0
  124. data/lib/license_finder/package_managers/nuget.rb +159 -0
  125. data/lib/license_finder/package_managers/pip.rb +70 -0
  126. data/lib/license_finder/package_managers/pipenv.rb +63 -0
  127. data/lib/license_finder/package_managers/pnpm.rb +126 -0
  128. data/lib/license_finder/package_managers/pub.rb +86 -0
  129. data/lib/license_finder/package_managers/rebar.rb +65 -0
  130. data/lib/license_finder/package_managers/sbt.rb +46 -0
  131. data/lib/license_finder/package_managers/spm.rb +93 -0
  132. data/lib/license_finder/package_managers/trash.rb +43 -0
  133. data/lib/license_finder/package_managers/yarn.rb +195 -0
  134. data/lib/license_finder/package_utils/activation.rb +40 -0
  135. data/lib/license_finder/package_utils/conan_info_parser.rb +77 -0
  136. data/lib/license_finder/package_utils/conan_info_parser_v2.rb +82 -0
  137. data/lib/license_finder/package_utils/gradle_dependency_finder.rb +15 -0
  138. data/lib/license_finder/package_utils/license_files.rb +51 -0
  139. data/lib/license_finder/package_utils/licensing.rb +40 -0
  140. data/lib/license_finder/package_utils/maven_dependency_finder.rb +57 -0
  141. data/lib/license_finder/package_utils/notice_files.rb +51 -0
  142. data/lib/license_finder/package_utils/possible_license_file.rb +33 -0
  143. data/lib/license_finder/package_utils/pypi.rb +43 -0
  144. data/lib/license_finder/package_utils/sbt_dependency_finder.rb +15 -0
  145. data/lib/license_finder/packages/bower_package.rb +45 -0
  146. data/lib/license_finder/packages/bundler_package.rb +33 -0
  147. data/lib/license_finder/packages/cargo_package.rb +28 -0
  148. data/lib/license_finder/packages/carthage_package.rb +18 -0
  149. data/lib/license_finder/packages/cocoa_pods_package.rb +22 -0
  150. data/lib/license_finder/packages/composer_package.rb +13 -0
  151. data/lib/license_finder/packages/conan_package.rb +23 -0
  152. data/lib/license_finder/packages/conda_package.rb +74 -0
  153. data/lib/license_finder/packages/erlangmk_package.rb +112 -0
  154. data/lib/license_finder/packages/go_package.rb +30 -0
  155. data/lib/license_finder/packages/gradle_package.rb +30 -0
  156. data/lib/license_finder/packages/manual_package.rb +27 -0
  157. data/lib/license_finder/packages/maven_package.rb +39 -0
  158. data/lib/license_finder/packages/merged_package.rb +44 -0
  159. data/lib/license_finder/packages/mix_package.rb +13 -0
  160. data/lib/license_finder/packages/npm_package.rb +219 -0
  161. data/lib/license_finder/packages/nuget_package.rb +13 -0
  162. data/lib/license_finder/packages/pip_package.rb +50 -0
  163. data/lib/license_finder/packages/pnpm_package.rb +13 -0
  164. data/lib/license_finder/packages/pubspec_package.rb +18 -0
  165. data/lib/license_finder/packages/rebar_package.rb +13 -0
  166. data/lib/license_finder/packages/sbt_package.rb +22 -0
  167. data/lib/license_finder/packages/spm_package.rb +18 -0
  168. data/lib/license_finder/packages/yarn_package.rb +13 -0
  169. data/lib/license_finder/platform.rb +15 -0
  170. data/lib/license_finder/printer.rb +39 -0
  171. data/lib/license_finder/project_finder.rb +62 -0
  172. data/lib/license_finder/report.rb +34 -0
  173. data/lib/license_finder/reports/csv_report.rb +108 -0
  174. data/lib/license_finder/reports/diff_report.rb +29 -0
  175. data/lib/license_finder/reports/erb_report.rb +62 -0
  176. data/lib/license_finder/reports/html_report.rb +13 -0
  177. data/lib/license_finder/reports/json_report.rb +31 -0
  178. data/lib/license_finder/reports/junit_report.rb +23 -0
  179. data/lib/license_finder/reports/markdown_report.rb +9 -0
  180. data/lib/license_finder/reports/merged_report.rb +16 -0
  181. data/lib/license_finder/reports/templates/bootstrap.css +9 -0
  182. data/lib/license_finder/reports/templates/html_report.erb +113 -0
  183. data/lib/license_finder/reports/templates/junit_report.erb +41 -0
  184. data/lib/license_finder/reports/templates/markdown_report.erb +49 -0
  185. data/lib/license_finder/reports/templates/xml_report.erb +19 -0
  186. data/lib/license_finder/reports/text_report.rb +12 -0
  187. data/lib/license_finder/reports/xml_report.rb +23 -0
  188. data/lib/license_finder/scanner.rb +83 -0
  189. data/lib/license_finder/shared_helpers/cmd.rb +13 -0
  190. data/lib/license_finder/shared_helpers/common_path.rb +29 -0
  191. data/lib/license_finder/version.rb +6 -0
  192. data/lib/license_finder.rb +14 -0
  193. data/license_finder.gemspec +79 -0
  194. data/release/instructions.md +8 -0
  195. data/swift-all-keys.asc +240 -0
  196. metadata +604 -0
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,122 @@
1
+ # Contributing
2
+
3
+ ## TL;DR
4
+
5
+ * Fork the project from https://github.com/pivotal/LicenseFinder
6
+ * Create a feature branch.
7
+ * Make your feature addition or bug fix. Please make sure there is appropriate test coverage.
8
+ * Rebase on top of master.
9
+ * Send a pull request with commit messages tagged with an entry specified here: https://keepachangelog.com/en/1.0.0/.
10
+
11
+ ## Running Tests
12
+
13
+ You can use the [LicenseFinder docker image](https://hub.docker.com/r/licensefinder/license_finder/) to run the tests by using the `dlf` script.
14
+ There are 2 sets of tests to run in order to confirm that License Finder is working as intended:
15
+
16
+ ```
17
+ ./dlf rake spec
18
+ ./dlf bundle exec rake features
19
+ ```
20
+
21
+ The `spec` task runs all the unit test and the `features` task will run all the feature test.
22
+ Note that the feature test needs to be wrapped in `bundle exec`, or else it
23
+ will use the gem version installed inside the docker image.
24
+
25
+ ## Useful Tips
26
+
27
+ To build the docker image simply call `docker build .` or explicitly pass the `Dockerfile`. Prebuilt versions of the
28
+ dockerfile can also be found on [Dockerhub](https://hub.docker.com/r/licensefinder/license_finder/tags/).
29
+
30
+ To launch the docker image and interact with it via bash:
31
+ ```
32
+ docker run -v $PWD:/scan -it licensefinder/license_finder /bin/bash -l
33
+
34
+ ```
35
+ `-v $PWD:/scan` will mount the current working directory to the /scan path.
36
+
37
+ ## Adding Package Managers
38
+
39
+ There are a few steps to adding a new package manager.
40
+ The main things which need to be implemented are mentioned in [Package Manager](https://github.com/pivotal/LicenseFinder/blob/master/lib/license_finder/package_manager.rb).
41
+
42
+ [Here](https://github.com/pivotal/LicenseFinder/compare/v2.0.0...v2.0.1) is how
43
+ support was added for `rebar`, an `erlang` package manager.
44
+
45
+ There are feature tests and unit tests for each currently supported package manager.
46
+ * [Feature test example](https://github.com/pivotal/LicenseFinder/blob/master/features/features/package_managers/gvt_spec.rb)
47
+ * [Unit test example](https://github.com/pivotal/LicenseFinder/blob/master/spec/lib/license_finder/package_managers/gvt_spec.rb)
48
+
49
+ ## Adding Licenses
50
+
51
+ Add new licenses to `lib/license_finder/license/definitions.rb`. There are
52
+ existing tools for matching licenses; see, for example, the MIT license, which
53
+ can be detected in many different ways.
54
+
55
+
56
+ ## Adding Reports
57
+
58
+ If you need `license_finder` to output additional package data, consider
59
+ submitting a pull request which adds new columns to
60
+ `lib/license_finder/reports/csv_report.rb`.
61
+
62
+ It is also possible to generate a custom report from an ERB template. Use this
63
+ [example](https://github.com/pivotal/LicenseFinder/blob/master/examples/custom_erb_template.rb) as a starting
64
+ point. These reports will have access to the helpers in
65
+ [`LicenseFinder::ErbReport`](https://github.com/pivotal/LicenseFinder/blob/master/lib/license_finder/reports/erb_report.rb).
66
+
67
+ If you need a report with more detailed data or in a different format, we
68
+ recommend writing a custom ruby script. This
69
+ [example](https://github.com/pivotal/LicenseFinder/blob/master/examples/extract_license_data.rb) will get you
70
+ started.
71
+
72
+ If you come up with something useful, consider posting it to the Google Group
73
+ [license-finder@googlegroups.com](license-finder@googlegroups.com).
74
+
75
+
76
+ ## Development Dependencies
77
+
78
+ To successfully run the test suite, you will need the following installed:
79
+ - NPM (requires Node)
80
+ - Yarn (requires Node)
81
+ - PNPM (requires Node)
82
+ - Bower (requires Node and NPM)
83
+ - Maven (requires Java)
84
+ - Gradle (requires Java)
85
+ - Pip (requires python)
86
+ - Rebar (requires erlang)
87
+ - GoDep, GoWorkspace, govendor, Glide, Dep, and Gvt (requires golang)
88
+ - CocoaPods (requires ruby)
89
+ - Bundler (requires ruby)
90
+ - Carthage (requires homebrew)
91
+ - Mix (requires Elixir)
92
+ - Conan
93
+ - NuGet
94
+ - dotnet
95
+ - Conda (requires python)
96
+
97
+ The [LicenseFinder docker image](https://hub.docker.com/r/licensefinder/license_finder/) already contains these dependencies.
98
+
99
+ If you run `rake check_dependencies`, you'll see exactly which package managers you're missing.
100
+
101
+ ### Python
102
+
103
+ For the python dependency tests you will want to have virtualenv
104
+ installed, to allow pip to work without sudo. For more details, see
105
+ this [post on virtualenv][].
106
+
107
+ [post on virtualenv]: http://hackercodex.com/guide/python-development-environment-on-mac-osx/#virtualenv
108
+
109
+ You'll need a pip version >= 6.0.
110
+
111
+ ### JRuby
112
+
113
+ If you're running the test suite with jruby, you're probably going to
114
+ want to set up some environment variables:
115
+
116
+ ```
117
+ JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1' JRUBY_OPTS='-J-Djruby.launch.inproc=true'
118
+ ```
119
+
120
+ ### Gradle
121
+
122
+ You'll need a gradle version >= 1.8.
data/Dockerfile ADDED
@@ -0,0 +1,275 @@
1
+ FROM ubuntu:jammy
2
+
3
+ WORKDIR /tmp
4
+
5
+ # Versioning
6
+ ENV PIP3_INSTALL_VERSION 20.0.2
7
+ ENV GO_LANG_VERSION 1.17.13
8
+ ENV SBT_VERSION 1.3.3
9
+ ENV GRADLE_VERSION 5.6.4
10
+ ENV RUBY_VERSION 3.2.3
11
+ ENV COMPOSER_ALLOW_SUPERUSER 1
12
+
13
+ # programs needed for building
14
+ RUN apt -q update && apt install -y \
15
+ build-essential \
16
+ curl \
17
+ unzip \
18
+ wget \
19
+ gnupg2 \
20
+ apt-utils \
21
+ software-properties-common \
22
+ bzr && \
23
+ rm -rf /var/lib/apt/lists/*
24
+
25
+ RUN add-apt-repository ppa:git-core/ppa && \
26
+ apt -q update && apt install -y git && rm -rf /var/lib/apt/lists/*
27
+
28
+ # install nodejs
29
+ RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - && \
30
+ apt -q update && apt install -y nodejs && rm -rf /var/lib/apt/lists/*
31
+
32
+ # install yarn
33
+ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
34
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
35
+ apt -q update && apt install -y yarn && rm -rf /var/lib/apt/lists/*
36
+
37
+ # install bower
38
+ RUN npm install -g bower && \
39
+ echo '{ "allow_root": true }' > /root/.bowerrc
40
+
41
+ # install pnpm
42
+ RUN npm install -g pnpm && \
43
+ pnpm version
44
+
45
+ # install jdk 12
46
+ RUN curl -L -o openjdk12.tar.gz https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz && \
47
+ tar xvf openjdk12.tar.gz && \
48
+ rm openjdk12.tar.gz && \
49
+ mv jdk-12.0.2 /opt/ && \
50
+ rm /opt/jdk-12.0.2/lib/src.zip
51
+ ENV JAVA_HOME=/opt/jdk-12.0.2
52
+ ENV PATH=$PATH:$JAVA_HOME/bin
53
+ RUN java -version
54
+
55
+ # install rebar3
56
+ RUN curl -o rebar3 https://s3.amazonaws.com/rebar3/rebar3 && \
57
+ chmod +x rebar3 && \
58
+ mv rebar3 /usr/local/bin/rebar3
59
+
60
+ # install and update python and python-pip
61
+ RUN apt -q update && apt install -y python3-pip && \
62
+ rm -rf /var/lib/apt/lists/* && \
63
+ python3 -m pip install pip==$PIP3_INSTALL_VERSION --upgrade
64
+
65
+ # install maven
66
+ RUN apt -q update && apt install -y maven && \
67
+ rm -rf /var/lib/apt/lists/*
68
+
69
+ # install sbt
70
+ RUN mkdir -p /usr/local/share/sbt-launcher-packaging && \
71
+ curl \
72
+ --retry 3 \
73
+ --retry-delay 15 \
74
+ --location "https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.tgz" \
75
+ --output "/tmp/sbt-${SBT_VERSION}.tgz" && \
76
+ tar -xzf "/tmp/sbt-${SBT_VERSION}.tgz" -C /usr/local/share/sbt-launcher-packaging --strip-components=1 && \
77
+ ln -s /usr/local/share/sbt-launcher-packaging/bin/sbt /usr/local/bin/sbt && \
78
+ rm -f "/tmp/sbt-${SBT_VERSION}.tgz"
79
+
80
+ # install gradle
81
+ RUN curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip && \
82
+ unzip -q gradle.zip && \
83
+ rm gradle.zip && \
84
+ mv gradle-$GRADLE_VERSION /root/gradle
85
+ ENV PATH=/root/gradle/bin:$PATH
86
+
87
+ #install go
88
+ WORKDIR /go
89
+ RUN wget https://storage.googleapis.com/golang/go$GO_LANG_VERSION.linux-amd64.tar.gz -O go.tar.gz && tar --strip-components=1 -xf go.tar.gz && rm -f go.tar.gz
90
+ ENV GOROOT /go
91
+ ENV PATH=$PATH:/go/bin
92
+
93
+ # godep is now required for license_finder to work for project that are still managed with GoDep
94
+ ENV GOROOT=/go
95
+ ENV GOPATH=/gopath
96
+ ENV PATH=$PATH:$GOPATH/bin
97
+
98
+ RUN mkdir /gopath && \
99
+ go install github.com/tools/godep@latest && \
100
+ go install github.com/FiloSottile/gvt@latest && \
101
+ go install github.com/kardianos/govendor@latest && \
102
+ go clean -cache
103
+
104
+ #install rvm and glide
105
+ RUN apt-add-repository -y ppa:rael-gc/rvm && \
106
+ apt -q update && apt install -y rvm && \
107
+ /usr/share/rvm/bin/rvm install --default $RUBY_VERSION && \
108
+ apt install -y golang-glide && \
109
+ rm -rf /var/lib/apt/lists/*
110
+
111
+ # install trash
112
+ RUN curl -Lo trash.tar.gz https://github.com/rancher/trash/releases/download/v0.2.7/trash-linux_amd64.tar.gz && \
113
+ tar xvf trash.tar.gz && \
114
+ rm trash.tar.gz && \
115
+ mv trash /usr/local/bin/
116
+
117
+ # install bundler
118
+ RUN bash -lc "gem update --system && gem install bundler"
119
+
120
+ WORKDIR /tmp
121
+ # Fix the locale
122
+ RUN apt -q update && apt install -y locales && rm -rf /var/lib/apt/lists/*
123
+ RUN locale-gen en_US.UTF-8
124
+ ENV LANG=en_US.UTF-8
125
+ ENV LANGUAGE=en_US:en
126
+ ENV LC_ALL=en_US.UTF-8
127
+
128
+ # install Cargo
129
+ RUN curl https://sh.rustup.rs -sSf | bash -ls -- -y --profile minimal
130
+
131
+ #install mix
132
+ RUN curl -1sLf 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/setup.deb.sh' | bash
133
+ RUN apt -q update && apt install -y erlang && rm -rf /var/lib/apt/lists/*
134
+ # Install Elixir
135
+ WORKDIR /tmp/elixir-build
136
+ RUN git clone https://github.com/elixir-lang/elixir.git
137
+ WORKDIR elixir
138
+ RUN make && make install
139
+ WORKDIR /
140
+
141
+ # install conan
142
+ RUN apt -q update && apt install -y python3-dev && rm -rf /var/lib/apt/lists/* && \
143
+ pip install --no-cache-dir --ignore-installed six --ignore-installed colorama \
144
+ --ignore-installed requests --ignore-installed chardet \
145
+ --ignore-installed urllib3 \
146
+ --upgrade setuptools && \
147
+ pip3 install --no-cache-dir -Iv conan==1.51.3 && \
148
+ conan config install https://github.com/conan-io/conanclientcert.git
149
+
150
+ # install NuGet (w. mono)
151
+ # https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools#macoslinux
152
+ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF &&\
153
+ echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | tee /etc/apt/sources.list.d/mono-official-stable.list &&\
154
+ apt -q update && apt install -y mono-complete && rm -rf /var/lib/apt/lists/* &&\
155
+ curl -o "/usr/local/bin/nuget.exe" "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" &&\
156
+ curl -o "/usr/local/bin/nugetv3.5.0.exe" "https://dist.nuget.org/win-x86-commandline/v3.5.0/nuget.exe"
157
+
158
+ # install dotnet core
159
+ RUN wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb &&\
160
+ dpkg -i packages-microsoft-prod.deb &&\
161
+ rm packages-microsoft-prod.deb &&\
162
+ apt -q update &&\
163
+ apt install -y dotnet-sdk-6.0 dotnet-sdk-7.0 &&\
164
+ rm -rf /var/lib/apt/lists/*
165
+
166
+ # install Composer
167
+ # The ARG and ENV are for installing tzdata which is part of this installaion.
168
+ # https://serverfault.com/questions/949991/how-to-install-tzdata-on-a-ubuntu-docker-image
169
+ ENV TZ=GMT
170
+ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4F4EA0AAE5267A6C &&\
171
+ echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu jammy main" | tee /etc/apt/sources.list.d/php.list &&\
172
+ export DEBIAN_FRONTEND=noninteractive &&\
173
+ apt -q update && apt install -y php7.4-cli && rm -rf /var/lib/apt/lists/* &&\
174
+ EXPECTED_COMPOSER_INSTALLER_CHECKSUM="$(curl --silent https://composer.github.io/installer.sig)" &&\
175
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" &&\
176
+ ACTUAL_COMPOSER_INSTALLER_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" &&\
177
+ test "${ACTUAL_COMPOSER_INSTALLER_CHECKSUM}" = "${EXPECTED_COMPOSER_INSTALLER_CHECKSUM}" || (echo "ERROR: Invalid installer checksum" >&2; false) &&\
178
+ php composer-setup.php &&\
179
+ php -r "unlink('composer-setup.php');" &&\
180
+ mv composer.phar /usr/bin/composer
181
+
182
+ # install miniconda
183
+ # See https://docs.conda.io/en/latest/miniconda_hashes.html
184
+ # for latest versions and SHAs.
185
+ RUN \
186
+ conda_installer=Miniconda3-py38_4.9.2-Linux-x86_64.sh &&\
187
+ ref='1314b90489f154602fd794accfc90446111514a5a72fe1f71ab83e07de9504a7' &&\
188
+ wget -q https://repo.anaconda.com/miniconda/${conda_installer} &&\
189
+ sha=`openssl sha256 "${conda_installer}" | cut -d' ' -f2` &&\
190
+ ([ "$sha" = "${ref}" ] || (echo "Verification failed: ${sha} != ${ref}"; false)) &&\
191
+ (echo; echo "yes") | sh "${conda_installer}"
192
+
193
+ # install Swift Package Manager
194
+ # Based on https://github.com/apple/swift-docker/blob/main/5.8/ubuntu/22.04/Dockerfile
195
+ # The GPG download steps has been modified. Keys are now on LF repo and copied instaad of downloaded.
196
+ # Refer to https://swift.org/download/#using-downloads in the Linux section on how to download the keys
197
+ RUN apt -q update && apt -q install -y \
198
+ binutils \
199
+ git \
200
+ gnupg2 \
201
+ libc6-dev \
202
+ libedit2 \
203
+ libgcc-9-dev \
204
+ libcurl4-openssl-dev \
205
+ libpython3-dev \
206
+ libsqlite3-0 \
207
+ libstdc++-9-dev \
208
+ libxml2-dev \
209
+ libz3-dev \
210
+ pkg-config \
211
+ python3-lldb-13 \
212
+ tzdata \
213
+ zlib1g-dev \
214
+ && rm -r /var/lib/apt/lists/*
215
+
216
+ # pub 4096R/ED3D1561 2019-03-22 [SC] [expires: 2023-03-23]
217
+ # Key fingerprint = A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561
218
+ # uid Swift 5.x Release Signing Key <swift-infrastructure@swift.org
219
+ ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
220
+ ARG SWIFT_PLATFORM=ubuntu22.04
221
+ ARG SWIFT_BRANCH=swift-5.8-release
222
+ ARG SWIFT_VERSION=swift-5.8-RELEASE
223
+ ARG SWIFT_WEBROOT=https://download.swift.org
224
+
225
+ ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
226
+ SWIFT_PLATFORM=$SWIFT_PLATFORM \
227
+ SWIFT_BRANCH=$SWIFT_BRANCH \
228
+ SWIFT_VERSION=$SWIFT_VERSION \
229
+ SWIFT_WEBROOT=$SWIFT_WEBROOT
230
+
231
+ COPY swift-all-keys.asc .
232
+ RUN set -e; \
233
+ SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)" \
234
+ && SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_VERSION/$SWIFT_VERSION-$SWIFT_PLATFORM.tar.gz" \
235
+ && SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
236
+ # - Grab curl here so we cache better up above
237
+ && export DEBIAN_FRONTEND=noninteractive \
238
+ && apt -q update && apt -q install -y curl && rm -rf /var/lib/apt/lists/* \
239
+ # - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
240
+ && export GNUPGHOME="$(mktemp -d)" \
241
+ && curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
242
+ && gpg --import swift-all-keys.asc \
243
+ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
244
+ # - Unpack the toolchain, set libs permissions, and clean up.
245
+ && tar -xzf swift.tar.gz --directory / --strip-components=1 \
246
+ && chmod -R o+r /usr/lib/swift \
247
+ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \
248
+ set +e
249
+
250
+ # install flutter
251
+ ENV FLUTTER_HOME=/root/flutter
252
+ RUN git config --global --add safe.directory /root/flutter
253
+ RUN curl -o flutter_linux_2.8.1-stable.tar.xz https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_2.8.1-stable.tar.xz \
254
+ && tar xf flutter_linux_2.8.1-stable.tar.xz \
255
+ && mv flutter ${FLUTTER_HOME} \
256
+ && rm flutter_linux_2.8.1-stable.tar.xz
257
+
258
+ ENV PATH=$PATH:${FLUTTER_HOME}/bin:${FLUTTER_HOME}/bin/cache/dart-sdk/bin
259
+ RUN flutter doctor -v \
260
+ && flutter update-packages \
261
+ && flutter precache
262
+ # Accepting all licences
263
+ RUN yes | flutter doctor --android-licenses -v
264
+ # Creating Flutter sample projects to put binaries in cache fore each template type
265
+ RUN flutter create --template=app ${TEMP}/app_sample \
266
+ && flutter create --template=package ${TEMP}/package_sample \
267
+ && flutter create --template=plugin ${TEMP}/plugin_sample
268
+
269
+ # install license_finder
270
+ COPY . /LicenseFinder
271
+ RUN bash -lc "cd /LicenseFinder && bundle config set no-cache 'true' && bundle install -j4 && bundle pristine && rake install"
272
+
273
+ WORKDIR /
274
+
275
+ CMD cd /scan && /bin/bash -l
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2012-2020 Pivotal Software, Inc. All Rights Reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+