gitlab-license_finder 6.14.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +7 -0
  2. data/.force-build +0 -0
  3. data/.gitignore +13 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +70 -0
  6. data/CHANGELOG.md +981 -0
  7. data/CONTRIBUTING.md +121 -0
  8. data/Dockerfile +249 -0
  9. data/Gemfile +2 -0
  10. data/LICENSE +22 -0
  11. data/README.md +555 -0
  12. data/Rakefile +77 -0
  13. data/TODO.md +12 -0
  14. data/VERSION +1 -0
  15. data/appveyor.yml +21 -0
  16. data/bin/license_finder +6 -0
  17. data/bin/license_finder_pip.py +43 -0
  18. data/ci/pipelines/pull-request.yml.erb +141 -0
  19. data/ci/pipelines/release.yml.erb +200 -0
  20. data/ci/scripts/containerize-tests.sh +14 -0
  21. data/ci/scripts/pushscript.sh +32 -0
  22. data/ci/scripts/run-rubocop.sh +15 -0
  23. data/ci/scripts/run-tests.sh +24 -0
  24. data/ci/scripts/test.ps1 +81 -0
  25. data/ci/scripts/updateChangelog.sh +84 -0
  26. data/ci/tasks/build-and-push-gem.yml +10 -0
  27. data/ci/tasks/build-windows.yml +6 -0
  28. data/ci/tasks/build.yml +16 -0
  29. data/ci/tasks/rubocop.yml +15 -0
  30. data/ci/tasks/run-tests.yml +10 -0
  31. data/ci/tasks/update-changelog.yml +18 -0
  32. data/dlf +12 -0
  33. data/examples/Gemfile +4 -0
  34. data/examples/custom_erb_template.rb +24 -0
  35. data/examples/extract_license_data.rb +63 -0
  36. data/examples/sample_template.erb +7 -0
  37. data/lib/license_finder/cli/approvals.rb +28 -0
  38. data/lib/license_finder/cli/base.rb +107 -0
  39. data/lib/license_finder/cli/dependencies.rb +44 -0
  40. data/lib/license_finder/cli/ignored_dependencies.rb +32 -0
  41. data/lib/license_finder/cli/ignored_groups.rb +32 -0
  42. data/lib/license_finder/cli/inherited_decisions.rb +50 -0
  43. data/lib/license_finder/cli/licenses.rb +26 -0
  44. data/lib/license_finder/cli/main.rb +221 -0
  45. data/lib/license_finder/cli/makes_decisions.rb +38 -0
  46. data/lib/license_finder/cli/patched_thor.rb +33 -0
  47. data/lib/license_finder/cli/permitted_licenses.rb +32 -0
  48. data/lib/license_finder/cli/project_name.rb +32 -0
  49. data/lib/license_finder/cli/restricted_licenses.rb +32 -0
  50. data/lib/license_finder/cli.rb +20 -0
  51. data/lib/license_finder/configuration.rb +186 -0
  52. data/lib/license_finder/core.rb +118 -0
  53. data/lib/license_finder/decision_applier.rb +70 -0
  54. data/lib/license_finder/decisions.rb +312 -0
  55. data/lib/license_finder/decisions_factory.rb +13 -0
  56. data/lib/license_finder/diff.rb +51 -0
  57. data/lib/license_finder/license/any_matcher.rb +15 -0
  58. data/lib/license_finder/license/definitions.rb +366 -0
  59. data/lib/license_finder/license/header_matcher.rb +17 -0
  60. data/lib/license_finder/license/matcher.rb +24 -0
  61. data/lib/license_finder/license/none_matcher.rb +11 -0
  62. data/lib/license_finder/license/template.rb +19 -0
  63. data/lib/license_finder/license/templates/0BSD.txt +10 -0
  64. data/lib/license_finder/license/templates/Apache1_1.txt +16 -0
  65. data/lib/license_finder/license/templates/Apache2.txt +172 -0
  66. data/lib/license_finder/license/templates/BSD.txt +24 -0
  67. data/lib/license_finder/license/templates/CC01.txt +30 -0
  68. data/lib/license_finder/license/templates/CDDL1.txt +131 -0
  69. data/lib/license_finder/license/templates/EPL1.txt +86 -0
  70. data/lib/license_finder/license/templates/GPLv2.txt +339 -0
  71. data/lib/license_finder/license/templates/GPLv3.txt +674 -0
  72. data/lib/license_finder/license/templates/ISC.txt +2 -0
  73. data/lib/license_finder/license/templates/LGPL.txt +165 -0
  74. data/lib/license_finder/license/templates/LGPL2_1.txt +169 -0
  75. data/lib/license_finder/license/templates/MIT.txt +9 -0
  76. data/lib/license_finder/license/templates/MPL1_1.txt +469 -0
  77. data/lib/license_finder/license/templates/MPL2.txt +373 -0
  78. data/lib/license_finder/license/templates/NewBSD.txt +21 -0
  79. data/lib/license_finder/license/templates/OFL.txt +91 -0
  80. data/lib/license_finder/license/templates/Python.txt +47 -0
  81. data/lib/license_finder/license/templates/Ruby.txt +52 -0
  82. data/lib/license_finder/license/templates/SimplifiedBSD.txt +19 -0
  83. data/lib/license_finder/license/templates/WTFPL.txt +14 -0
  84. data/lib/license_finder/license/templates/Zlib.txt +17 -0
  85. data/lib/license_finder/license/text.rb +45 -0
  86. data/lib/license_finder/license.rb +117 -0
  87. data/lib/license_finder/license_aggregator.rb +59 -0
  88. data/lib/license_finder/logger.rb +69 -0
  89. data/lib/license_finder/package.rb +202 -0
  90. data/lib/license_finder/package_delta.rb +61 -0
  91. data/lib/license_finder/package_manager.rb +181 -0
  92. data/lib/license_finder/package_managers/bower.rb +37 -0
  93. data/lib/license_finder/package_managers/bundler.rb +110 -0
  94. data/lib/license_finder/package_managers/cargo.rb +38 -0
  95. data/lib/license_finder/package_managers/carthage.rb +68 -0
  96. data/lib/license_finder/package_managers/cocoa_pods.rb +61 -0
  97. data/lib/license_finder/package_managers/composer.rb +63 -0
  98. data/lib/license_finder/package_managers/conan.rb +28 -0
  99. data/lib/license_finder/package_managers/conda.rb +131 -0
  100. data/lib/license_finder/package_managers/dep.rb +43 -0
  101. data/lib/license_finder/package_managers/dotnet.rb +83 -0
  102. data/lib/license_finder/package_managers/erlangmk.rb +50 -0
  103. data/lib/license_finder/package_managers/glide.rb +36 -0
  104. data/lib/license_finder/package_managers/go_15vendorexperiment.rb +87 -0
  105. data/lib/license_finder/package_managers/go_dep.rb +80 -0
  106. data/lib/license_finder/package_managers/go_modules.rb +93 -0
  107. data/lib/license_finder/package_managers/go_workspace.rb +116 -0
  108. data/lib/license_finder/package_managers/govendor.rb +73 -0
  109. data/lib/license_finder/package_managers/gradle.rb +99 -0
  110. data/lib/license_finder/package_managers/gvt.rb +69 -0
  111. data/lib/license_finder/package_managers/maven.rb +65 -0
  112. data/lib/license_finder/package_managers/mix.rb +131 -0
  113. data/lib/license_finder/package_managers/npm.rb +57 -0
  114. data/lib/license_finder/package_managers/nuget.rb +154 -0
  115. data/lib/license_finder/package_managers/pip.rb +70 -0
  116. data/lib/license_finder/package_managers/pipenv.rb +63 -0
  117. data/lib/license_finder/package_managers/rebar.rb +65 -0
  118. data/lib/license_finder/package_managers/sbt.rb +50 -0
  119. data/lib/license_finder/package_managers/spm.rb +93 -0
  120. data/lib/license_finder/package_managers/trash.rb +43 -0
  121. data/lib/license_finder/package_managers/yarn.rb +107 -0
  122. data/lib/license_finder/package_utils/activation.rb +40 -0
  123. data/lib/license_finder/package_utils/conan_info_parser.rb +77 -0
  124. data/lib/license_finder/package_utils/gradle_dependency_finder.rb +15 -0
  125. data/lib/license_finder/package_utils/license_files.rb +41 -0
  126. data/lib/license_finder/package_utils/licensing.rb +39 -0
  127. data/lib/license_finder/package_utils/maven_dependency_finder.rb +15 -0
  128. data/lib/license_finder/package_utils/notice_files.rb +40 -0
  129. data/lib/license_finder/package_utils/possible_license_file.rb +27 -0
  130. data/lib/license_finder/package_utils/pypi.rb +41 -0
  131. data/lib/license_finder/package_utils/sbt_dependency_finder.rb +15 -0
  132. data/lib/license_finder/packages/bower_package.rb +42 -0
  133. data/lib/license_finder/packages/bundler_package.rb +33 -0
  134. data/lib/license_finder/packages/cargo_package.rb +28 -0
  135. data/lib/license_finder/packages/carthage_package.rb +18 -0
  136. data/lib/license_finder/packages/cocoa_pods_package.rb +22 -0
  137. data/lib/license_finder/packages/composer_package.rb +13 -0
  138. data/lib/license_finder/packages/conan_package.rb +23 -0
  139. data/lib/license_finder/packages/conda_package.rb +74 -0
  140. data/lib/license_finder/packages/erlangmk_package.rb +114 -0
  141. data/lib/license_finder/packages/go_package.rb +32 -0
  142. data/lib/license_finder/packages/gradle_package.rb +30 -0
  143. data/lib/license_finder/packages/manual_package.rb +27 -0
  144. data/lib/license_finder/packages/maven_package.rb +27 -0
  145. data/lib/license_finder/packages/merged_package.rb +44 -0
  146. data/lib/license_finder/packages/mix_package.rb +13 -0
  147. data/lib/license_finder/packages/npm_package.rb +171 -0
  148. data/lib/license_finder/packages/nuget_package.rb +13 -0
  149. data/lib/license_finder/packages/pip_package.rb +50 -0
  150. data/lib/license_finder/packages/rebar_package.rb +13 -0
  151. data/lib/license_finder/packages/sbt_package.rb +22 -0
  152. data/lib/license_finder/packages/spm_package.rb +18 -0
  153. data/lib/license_finder/packages/yarn_package.rb +13 -0
  154. data/lib/license_finder/platform.rb +15 -0
  155. data/lib/license_finder/project_finder.rb +62 -0
  156. data/lib/license_finder/report.rb +33 -0
  157. data/lib/license_finder/reports/csv_report.rb +99 -0
  158. data/lib/license_finder/reports/diff_report.rb +29 -0
  159. data/lib/license_finder/reports/erb_report.rb +58 -0
  160. data/lib/license_finder/reports/html_report.rb +13 -0
  161. data/lib/license_finder/reports/json_report.rb +30 -0
  162. data/lib/license_finder/reports/junit_report.rb +19 -0
  163. data/lib/license_finder/reports/markdown_report.rb +9 -0
  164. data/lib/license_finder/reports/merged_report.rb +16 -0
  165. data/lib/license_finder/reports/templates/bootstrap.css +9 -0
  166. data/lib/license_finder/reports/templates/html_report.erb +113 -0
  167. data/lib/license_finder/reports/templates/junit_report.erb +41 -0
  168. data/lib/license_finder/reports/templates/markdown_report.erb +49 -0
  169. data/lib/license_finder/reports/templates/xml_report.erb +19 -0
  170. data/lib/license_finder/reports/text_report.rb +12 -0
  171. data/lib/license_finder/reports/xml_report.rb +19 -0
  172. data/lib/license_finder/scanner.rb +83 -0
  173. data/lib/license_finder/shared_helpers/cmd.rb +13 -0
  174. data/lib/license_finder/shared_helpers/common_path.rb +29 -0
  175. data/lib/license_finder/version.rb +6 -0
  176. data/lib/license_finder.rb +14 -0
  177. data/license_finder.gemspec +72 -0
  178. data/release/instructions.md +8 -0
  179. data/swift-all-keys.asc +240 -0
  180. metadata +544 -0
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,121 @@
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
+ - Bower (requires Node and NPM)
82
+ - Maven (requires Java)
83
+ - Gradle (requires Java)
84
+ - Pip (requires python)
85
+ - Rebar (requires erlang)
86
+ - GoDep, GoWorkspace, govendor, Glide, Dep, and Gvt (requires golang)
87
+ - CocoaPods (requires ruby)
88
+ - Bundler (requires ruby)
89
+ - Carthage (requires homebrew)
90
+ - Mix (requires Elixir)
91
+ - Conan
92
+ - NuGet
93
+ - dotnet
94
+ - Conda (requires python)
95
+
96
+ The [LicenseFinder docker image](https://hub.docker.com/r/licensefinder/license_finder/) already contains these dependencies.
97
+
98
+ If you run `rake check_dependencies`, you'll see exactly which package managers you're missing.
99
+
100
+ ### Python
101
+
102
+ For the python dependency tests you will want to have virtualenv
103
+ installed, to allow pip to work without sudo. For more details, see
104
+ this [post on virtualenv][].
105
+
106
+ [post on virtualenv]: http://hackercodex.com/guide/python-development-environment-on-mac-osx/#virtualenv
107
+
108
+ You'll need a pip version >= 6.0.
109
+
110
+ ### JRuby
111
+
112
+ If you're running the test suite with jruby, you're probably going to
113
+ want to set up some environment variables:
114
+
115
+ ```
116
+ JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1' JRUBY_OPTS='-J-Djruby.launch.inproc=true'
117
+ ```
118
+
119
+ ### Gradle
120
+
121
+ You'll need a gradle version >= 1.8.
data/Dockerfile ADDED
@@ -0,0 +1,249 @@
1
+ FROM ubuntu:bionic
2
+
3
+ WORKDIR /tmp
4
+
5
+ # Versioning
6
+ ENV PIP_INSTALL_VERSION 19.0.2
7
+ ENV PIP3_INSTALL_VERSION 20.0.2
8
+ ENV GO_LANG_VERSION 1.14.3
9
+ ENV MAVEN_VERSION 3.6.0
10
+ ENV SBT_VERSION 1.3.3
11
+ ENV GRADLE_VERSION 5.6.4
12
+ ENV RUBY_VERSION 2.7.1
13
+ ENV MIX_VERSION 1.0
14
+ ENV COMPOSER_ALLOW_SUPERUSER 1
15
+
16
+ # programs needed for building
17
+ RUN apt-get update && apt-get install -y \
18
+ build-essential \
19
+ curl \
20
+ sudo \
21
+ unzip \
22
+ wget \
23
+ gnupg2 \
24
+ apt-utils \
25
+ software-properties-common \
26
+ bzr
27
+
28
+ RUN add-apt-repository ppa:git-core/ppa && apt-get update && apt-get install -y git
29
+
30
+ # nodejs seems to be required for the one of the gems
31
+ RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
32
+ apt-get -y install nodejs
33
+
34
+ # install yarn
35
+ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \
36
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \
37
+ apt-get update && \
38
+ apt-get install yarn
39
+
40
+ # install bower
41
+ RUN npm install -g bower && \
42
+ echo '{ "allow_root": true }' > /root/.bowerrc
43
+
44
+ # install jdk 12
45
+ 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 && \
46
+ tar xvf openjdk12.tar.gz && \
47
+ rm openjdk12.tar.gz && \
48
+ sudo mv jdk-12.0.2 /opt/ && \
49
+ sudo rm /opt/jdk-12.0.2/lib/src.zip
50
+ ENV JAVA_HOME=/opt/jdk-12.0.2
51
+ ENV PATH=$PATH:$JAVA_HOME/bin
52
+ RUN java -version
53
+
54
+ # install rebar3
55
+ RUN curl -o rebar3 https://s3.amazonaws.com/rebar3/rebar3 && \
56
+ sudo chmod +x rebar3 && \
57
+ sudo mv rebar3 /usr/local/bin/rebar3
58
+
59
+ # install and update python and python-pip
60
+ RUN apt-get install -y python python-pip python3-pip && \
61
+ python3 -m pip install pip==$PIP3_INSTALL_VERSION --upgrade && \
62
+ python -m pip install pip==$PIP_INSTALL_VERSION --upgrade --force
63
+
64
+ # install maven
65
+ RUN curl -O https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz && \
66
+ tar -xf apache-maven-$MAVEN_VERSION-bin.tar.gz; rm -rf apache-maven-$MAVEN_VERSION-bin.tar.gz && \
67
+ mv apache-maven-$MAVEN_VERSION /usr/local/lib/maven && \
68
+ ln -s /usr/local/lib/maven/bin/mvn /usr/local/bin/mvn
69
+
70
+ # install sbt
71
+ RUN mkdir -p /usr/local/share/sbt-launcher-packaging && \
72
+ curl --progress \
73
+ --retry 3 \
74
+ --retry-delay 15 \
75
+ --location "https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.tgz" \
76
+ --output "/tmp/sbt-${SBT_VERSION}.tgz" && \
77
+ tar -xzf "/tmp/sbt-${SBT_VERSION}.tgz" -C /usr/local/share/sbt-launcher-packaging --strip-components=1 && \
78
+ ln -s /usr/local/share/sbt-launcher-packaging/bin/sbt /usr/local/bin/sbt && \
79
+ rm -f "/tmp/sbt-${SBT_VERSION}.tgz"
80
+
81
+ # install gradle
82
+ RUN curl -L -o gradle.zip https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip && \
83
+ unzip -q gradle.zip && \
84
+ rm gradle.zip && \
85
+ mv gradle-$GRADLE_VERSION /root/gradle
86
+ ENV PATH=/root/gradle/bin:$PATH
87
+
88
+ #install go
89
+ WORKDIR /go
90
+ 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
91
+ ENV GOROOT /go
92
+ ENV PATH=$PATH:/go/bin
93
+
94
+ # godep is now required for license_finder to work for project that are still managed with GoDep
95
+ ENV GOROOT=/go
96
+ ENV GOPATH=/gopath
97
+ ENV PATH=$PATH:$GOPATH/bin
98
+ RUN mkdir /gopath && \
99
+ go get github.com/tools/godep && \
100
+ go get github.com/FiloSottile/gvt && \
101
+ go get github.com/Masterminds/glide && \
102
+ go get github.com/kardianos/govendor && \
103
+ go get github.com/golang/dep/cmd/dep && \
104
+ go get -u github.com/rancher/trash && \
105
+ go clean -cache
106
+
107
+ WORKDIR /tmp
108
+ # Fix the locale
109
+ RUN apt-get install -y locales
110
+ RUN locale-gen en_US.UTF-8
111
+ ENV LANG=en_US.UTF-8
112
+ ENV LANGUAGE=en_US:en
113
+ ENV LC_ALL=en_US.UTF-8
114
+
115
+ # install Cargo
116
+ RUN curl https://sh.rustup.rs -sSf | bash -ls -- -y --profile minimal
117
+
118
+ #install rvm
119
+ RUN apt-add-repository -y ppa:rael-gc/rvm && \
120
+ apt update && apt install -y rvm && \
121
+ /usr/share/rvm/bin/rvm install --default $RUBY_VERSION
122
+
123
+ # install bundler
124
+ RUN bash -lc "gem update --system && gem install bundler"
125
+
126
+ #install mix
127
+ RUN wget https://packages.erlang-solutions.com/erlang-solutions_${MIX_VERSION}_all.deb && \
128
+ sudo dpkg -i erlang-solutions_${MIX_VERSION}_all.deb && \
129
+ sudo rm -f erlang-solutions_${MIX_VERSION}_all.deb && \
130
+ sudo apt-get update && \
131
+ sudo apt-get install -y esl-erlang && \
132
+ sudo apt-get install -y elixir
133
+
134
+ # install conan
135
+ RUN apt-get install -y python-dev && \
136
+ pip install --no-cache-dir --ignore-installed six --ignore-installed colorama \
137
+ --ignore-installed requests --ignore-installed chardet \
138
+ --ignore-installed urllib3 \
139
+ --upgrade setuptools && \
140
+ pip install --no-cache-dir -Iv conan==1.11.2 && \
141
+ conan config install https://github.com/conan-io/conanclientcert.git
142
+
143
+
144
+ # install NuGet (w. mono)
145
+ # https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools#macoslinux
146
+ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF &&\
147
+ echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list &&\
148
+ apt-get update &&\
149
+ apt-get install -y mono-complete &&\
150
+ curl -o "/usr/local/bin/nuget.exe" "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" &&\
151
+ curl -o "/usr/local/bin/nugetv3.5.0.exe" "https://dist.nuget.org/win-x86-commandline/v3.5.0/nuget.exe"
152
+
153
+ # install dotnet core
154
+ RUN wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb &&\
155
+ sudo dpkg -i packages-microsoft-prod.deb &&\
156
+ rm packages-microsoft-prod.deb &&\
157
+ sudo apt-get update &&\
158
+ sudo apt-get install -y dotnet-runtime-2.1 dotnet-sdk-2.1 dotnet-sdk-2.2 dotnet-sdk-3.0 dotnet-sdk-3.1
159
+
160
+ # install Composer
161
+ # The ARG and ENV are for installing tzdata which is part of this installaion.
162
+ # https://serverfault.com/questions/949991/how-to-install-tzdata-on-a-ubuntu-docker-image
163
+ ENV TZ=GMT
164
+ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4F4EA0AAE5267A6C &&\
165
+ echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" | sudo tee /etc/apt/sources.list.d/php.list &&\
166
+ apt-get update &&\
167
+ export DEBIAN_FRONTEND=noninteractive &&\
168
+ apt-get install -y php7.4-cli &&\
169
+ EXPECTED_COMPOSER_INSTALLER_CHECKSUM="$(curl --silent https://composer.github.io/installer.sig)" &&\
170
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" &&\
171
+ ACTUAL_COMPOSER_INSTALLER_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" &&\
172
+ test "${ACTUAL_COMPOSER_INSTALLER_CHECKSUM}" = "${EXPECTED_COMPOSER_INSTALLER_CHECKSUM}" || (echo "ERROR: Invalid installer checksum" >&2; false) &&\
173
+ php composer-setup.php &&\
174
+ php -r "unlink('composer-setup.php');" &&\
175
+ mv composer.phar /usr/bin/composer
176
+
177
+ # install miniconda
178
+ # See https://docs.conda.io/en/latest/miniconda_hashes.html
179
+ # for latest versions and SHAs.
180
+ RUN \
181
+ conda_installer=Miniconda3-py38_4.9.2-Linux-x86_64.sh &&\
182
+ ref='1314b90489f154602fd794accfc90446111514a5a72fe1f71ab83e07de9504a7' &&\
183
+ wget -q https://repo.anaconda.com/miniconda/${conda_installer} &&\
184
+ sha=`openssl sha256 "${conda_installer}" | cut -d' ' -f2` &&\
185
+ ([ "$sha" = "${ref}" ] || (echo "Verification failed: ${sha} != ${ref}"; false)) &&\
186
+ (echo; echo "yes") | sh "${conda_installer}"
187
+
188
+ # install Swift Package Manager
189
+ # Based on https://github.com/apple/swift-docker/blob/main/5.3/ubuntu/18.04/Dockerfile
190
+ # The GPG download steps has been modified. Keys are now on LF repo and copied instaad of downloaded.
191
+ # Refer to https://swift.org/download/#using-downloads in the Linux section on how to download the keys
192
+ RUN apt-get -q install -y \
193
+ libatomic1 \
194
+ libcurl4 \
195
+ libxml2 \
196
+ libedit2 \
197
+ libsqlite3-0 \
198
+ libc6-dev \
199
+ binutils \
200
+ libgcc-5-dev \
201
+ libstdc++-5-dev \
202
+ zlib1g-dev \
203
+ libpython2.7 \
204
+ tzdata \
205
+ git \
206
+ pkg-config \
207
+ && rm -r /var/lib/apt/lists/*
208
+
209
+ # pub 4096R/ED3D1561 2019-03-22 [SC] [expires: 2023-03-23]
210
+ # Key fingerprint = A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561
211
+ # uid Swift 5.x Release Signing Key <swift-infrastructure@swift.org
212
+ ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
213
+ ARG SWIFT_PLATFORM=ubuntu18.04
214
+ ARG SWIFT_BRANCH=swift-5.3.3-release
215
+ ARG SWIFT_VERSION=swift-5.3.3-RELEASE
216
+ ARG SWIFT_WEBROOT=https://download.swift.org
217
+
218
+ ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
219
+ SWIFT_PLATFORM=$SWIFT_PLATFORM \
220
+ SWIFT_BRANCH=$SWIFT_BRANCH \
221
+ SWIFT_VERSION=$SWIFT_VERSION \
222
+ SWIFT_WEBROOT=$SWIFT_WEBROOT
223
+
224
+ COPY swift-all-keys.asc .
225
+ RUN set -e; \
226
+ SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)" \
227
+ && SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_VERSION/$SWIFT_VERSION-$SWIFT_PLATFORM.tar.gz" \
228
+ && SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
229
+ # - Grab curl here so we cache better up above
230
+ && export DEBIAN_FRONTEND=noninteractive \
231
+ && apt-get -q update && apt-get -q install -y curl && rm -rf /var/lib/apt/lists/* \
232
+ # - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
233
+ && export GNUPGHOME="$(mktemp -d)" \
234
+ && curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
235
+ && gpg --import swift-all-keys.asc \
236
+ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
237
+ # - Unpack the toolchain, set libs permissions, and clean up.
238
+ && tar -xzf swift.tar.gz --directory / --strip-components=1 \
239
+ && chmod -R o+r /usr/lib/swift \
240
+ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \
241
+ set +e
242
+
243
+ # install license_finder
244
+ COPY . /LicenseFinder
245
+ RUN bash -lc "cd /LicenseFinder && bundle config set no-cache 'true' && bundle install -j4 && rake install"
246
+
247
+ WORKDIR /
248
+
249
+ 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
+