license_finder 5.3.0 → 5.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f6aed769d4ad0cd9c9b6351c889ffc2ab66e2410601f2f26df043e09020889f
4
- data.tar.gz: f82d12773e91b7879a46e9e6876d8056a7d901cd7005257eee3c66c1b45cba7d
3
+ metadata.gz: 27bf5ceddaefdfaf96e14aa2021ca620e94b5f4923983638fbfce367271143c2
4
+ data.tar.gz: 7e6a9f084d74919d7cbf2be27038ba3ad529ef7431b3691f33aa1d5d03822c2a
5
5
  SHA512:
6
- metadata.gz: 5477a62b4d082281a806f023572e1b382927a35cae497c5fb44901b6f5652bf88df2cc8cd1762dc69637ae8b9b806b9baa13cffa1f96286aad9cdf055651dda8
7
- data.tar.gz: 2208b7c87598ed2daa3aebafb70e239416f9a333e0bf80549674657b87f6cd06d77ad115325044963b4dfb7e59331cf4bdaa498c51529024e47dad2d9ce170ed
6
+ metadata.gz: d0e9016bfd2140a346748d7ecee8653e7f79b32a970be8ff6b82db77065c1aa355257e4ae526b930c2b2bbe15b976e19b8d5971708b258f6c61e245df49633bc
7
+ data.tar.gz: d008902c7f2e66e24243f805ddfef304c9861556351819f51cef627500aefbbffd6ff0a58ffb4a58a01888bb15de405433bfba98aa285b8aa8ebe9f091e20d73
@@ -1,3 +1,12 @@
1
+ # [5.3.0] / 2018-06-05
2
+
3
+ ### Added
4
+ * Experimental support for Rust dependencies with Cargo - [2ef3129](https://github.com/pivotal-legacy/LicenseFinder/commit/2ef31290f7abf51db5b7173302d1e535508bbd7a)
5
+ * Add project roots command to list paths to scan - [b7a22ea](https://github.com/pivotal-legacy/LicenseFinder/commit/b7a22eacfac0e1b9334998de606df69ec3156f77)
6
+
7
+ ### Removed
8
+ * Remove HTTParty dependency - [c52d014](https://github.com/pivotal-legacy/LicenseFinder/commit/c52d014df1ca9cd3838d03c60daa6fad954c5579)
9
+
1
10
  # [5.2.3] / 2018-05-14
2
11
 
3
12
  # [5.2.1] / 2018-05-14
@@ -598,3 +607,4 @@ Bugfixes:
598
607
  [5.2.0]: https://github.com/pivotal-legacy/LicenseFinder/compare/v5.1.1...v5.2.0
599
608
  [5.2.1]: https://github.com/pivotal-legacy/LicenseFinder/compare/v5.2.0...v5.2.1
600
609
  [5.2.3]: https://github.com/pivotal-legacy/LicenseFinder/compare/v5.2.1...v5.2.3
610
+ [5.3.0]: https://github.com/pivotal-legacy/LicenseFinder/compare/v5.2.3...v5.3.0
data/Dockerfile CHANGED
@@ -1,5 +1,4 @@
1
- FROM ubuntu:trusty
2
- RUN apt-get update && apt-get install -y curl git-core build-essential wget unzip
1
+ FROM ubuntu:xenial
3
2
 
4
3
  # Versioning
5
4
  ENV PIP_INSTALL_VERSION 10.0.1
@@ -10,6 +9,15 @@ ENV GRADLE_VERSION 4.2
10
9
  ENV RUBY_VERSION 2.5.1
11
10
  ENV MIX_VERSION 1.0
12
11
 
12
+ # programs needed for building
13
+ RUN apt-get update && apt-get install -y \
14
+ build-essential \
15
+ curl \
16
+ git-core \
17
+ sudo \
18
+ unzip \
19
+ wget
20
+
13
21
  # nodejs seems to be required for the one of the gems
14
22
  RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
15
23
  apt-get -y install nodejs
@@ -49,7 +57,7 @@ RUN apt-get install -y python-pip && \
49
57
  pip install --upgrade pip==$PIP_INSTALL_VERSION
50
58
 
51
59
  # install maven
52
- RUN curl -O http://www-us.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz && \
60
+ RUN curl -O https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz && \
53
61
  tar -xf apache-maven-$MAVEN_VERSION-bin.tar.gz; rm -rf apache-maven-$MAVEN_VERSION-bin.tar.gz && \
54
62
  mv apache-maven-$MAVEN_VERSION /usr/local/lib/maven && \
55
63
  ln -s /usr/local/lib/maven/bin/mvn /usr/local/bin/mvn
@@ -91,6 +99,7 @@ RUN mkdir /gopath && \
91
99
  go get github.com/golang/dep/cmd/dep
92
100
 
93
101
  # Fix the locale
102
+ RUN apt-get install -y locales
94
103
  RUN locale-gen en_US.UTF-8
95
104
  ENV LANG=en_US.UTF-8
96
105
  ENV LANGUAGE=en_US:en
@@ -119,6 +128,15 @@ RUN apt-get install -y python-dev && \
119
128
  # install Cargo
120
129
  RUN curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --disable-sudo
121
130
 
131
+ # install NuGet (w. mono)
132
+ # https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools#macoslinux
133
+ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF &&\
134
+ echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list &&\
135
+ apt-get update &&\
136
+ apt-get install -y mono-complete &&\
137
+ curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe &&\
138
+ echo "alias nuget=\"mono /usr/local/bin/nuget.exe\"" >> ~/.bash_aliases
139
+
122
140
  # install license_finder
123
141
  COPY . /LicenseFinder
124
142
  RUN bash -lc "cd /LicenseFinder && bundle install -j4 && rake install"
@@ -10,5 +10,5 @@ pushd LicenseFinder
10
10
  docker build . -t licensefinder/license_finder
11
11
 
12
12
  docker run -v $PWD:/lf -it licensefinder/license_finder /bin/bash \
13
- -exlc "cd /lf && ci/scripts/run-tests.sh $RUBY_VERSION_UNDER_TEST"
13
+ -exli /lf/ci/scripts/run-tests.sh "$RUBY_VERSION_UNDER_TEST"
14
14
  popd
@@ -10,6 +10,10 @@ built_gem="pkg/license_finder-$build_version.gem"
10
10
  git config --global user.email $GIT_EMAIL
11
11
  git config --global user.name $GIT_USERNAME
12
12
 
13
+ git config --global push.default simple
14
+
15
+ git checkout master
16
+
13
17
  mkdir ~/.ssh
14
18
  ssh-keyscan github.com >> ~/.ssh/known_hosts
15
19
  eval "$(ssh-agent -s)"
@@ -1,30 +1,38 @@
1
1
  #!/bin/bash -elx
2
+
3
+ set -o pipefail
4
+
5
+ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
6
+ PROJECT_ROOT="$( dirname "$( dirname $DIR )" )"
7
+
2
8
  RUBY_VERSION_UNDER_TEST=$1
3
- rvm install --default $RUBY_VERSION_UNDER_TEST
4
- ruby --version
5
9
 
6
- export GOPATH=$HOME/go
7
- export RUBYOPT='-E utf-8'
10
+ pushd "$PROJECT_ROOT"
8
11
 
9
- gem update --system
10
- gem install bundler
11
- bundle install
12
+ rvm install --default $RUBY_VERSION_UNDER_TEST
13
+ ruby --version
12
14
 
13
- # jruby-9 specific: requires >= rack 2.x
14
- if [ "$RUBY_VERSION_UNDER_TEST" == "jruby-9.0.4.0" ]
15
- then
16
- bundle update rack
17
- apt-get -y install software-properties-common
18
- add-apt-repository -y ppa:webupd8team/java
19
- apt-get update
20
- echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
21
- apt -y install oracle-java8-set-default
22
- fi
15
+ export GOPATH=$HOME/go
16
+ export RUBYOPT='-E utf-8'
23
17
 
18
+ gem update --system
19
+ gem install bundler
20
+ bundle install
24
21
 
25
- bundle exec rake install
26
- bundle exec rake spec
27
- bundle exec rake features
22
+ # jruby-9 specific: requires >= rack 2.x
23
+ if [ "$RUBY_VERSION_UNDER_TEST" == "jruby-9.0.4.0" ]
24
+ then
25
+ bundle update rack
26
+ apt-get -y install software-properties-common
27
+ add-apt-repository -y ppa:webupd8team/java
28
+ apt-get update
29
+ echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
30
+ apt-get -y install oracle-java8-set-default
31
+ fi
28
32
 
29
33
 
34
+ bundle exec rake install
35
+ bundle exec rake spec
36
+ bundle exec rake features
30
37
 
38
+ popd
@@ -8,7 +8,7 @@ CHANGELOG_FILE="CHANGELOG.md"
8
8
  COMMIT_URL="https://github.com/pivotal-legacy/LicenseFinder/commit/"
9
9
 
10
10
  TAGS=( "Added" "ADDED" "Fixed" "FIXED" "Changed" "CHANGED" "Deprecated" "DEPRECATED" "Removed" "REMOVED" "Security" "SECURITY" )
11
- CONTRIBUTORS=( "Shane Lattanzio" "Daniil Kouznetsov" "Andy Shen" "Li Tai" "Ryan Collins" "Vikram Yadav" )
11
+ CONTRIBUTORS=( "Shane Lattanzio" "Li Tai" "Vikram Yadav" "Mark Fiorvanti" "Serafima Ostrovskaya" "Yoon Jean Kim" "Tony Wong" "Parv Mital" )
12
12
 
13
13
  OLD="v$(cat ./lf-release/version)"
14
14
  VERSION="$(ruby -r ./lf-git-changed/lib/license_finder/version.rb -e "puts LicenseFinder::VERSION")"
@@ -5,6 +5,7 @@ module LicenseFinder
5
5
  class Nuget < PackageManager
6
6
  class Assembly
7
7
  attr_reader :name, :path
8
+
8
9
  def initialize(path, name)
9
10
  @path = path
10
11
  @name = name
@@ -26,7 +27,13 @@ module LicenseFinder
26
27
  path = project_path.join('vendor/*.nupkg')
27
28
  nuget_dir = Dir[path].map { |pkg| File.dirname(pkg) }.uniq
28
29
 
30
+ # Presence of a .sln is a good indicator for a dotnet solution
31
+ # cf.: https://docs.microsoft.com/en-us/nuget/tools/cli-ref-restore#remarks
32
+ path = project_path.join('*.sln')
33
+ solution_file = Dir[path].first
34
+
29
35
  possible_paths = [project_path.join('packages.config'), project_path.join('.nuget')]
36
+ possible_paths.unshift(Pathname(solution_file)) unless solution_file.nil?
30
37
  possible_paths.unshift(Pathname(nuget_dir.first)) unless nuget_dir.empty?
31
38
  possible_paths
32
39
  end
@@ -61,5 +68,29 @@ module LicenseFinder
61
68
  def dependencies
62
69
  assemblies.flat_map(&:dependencies)
63
70
  end
71
+
72
+ def self.package_management_command
73
+ return 'nuget' if LicenseFinder::Platform.windows?
74
+ 'mono /usr/local/bin/nuget.exe'
75
+ end
76
+
77
+ def self.prepare_command
78
+ "#{package_management_command} restore"
79
+ end
80
+
81
+ def self.installed?(logger = Core.default_logger)
82
+ _stdout, _stderr, status = Cmd.run(nuget_check)
83
+ if status.success?
84
+ logger.debug self, 'is installed', color: :green
85
+ else
86
+ logger.info self, 'is not installed', color: :red
87
+ end
88
+ status.success?
89
+ end
90
+
91
+ def self.nuget_check
92
+ return 'where nuget' if LicenseFinder::Platform.windows?
93
+ 'which mono && ls /usr/local/bin/nuget.exe'
94
+ end
64
95
  end
65
96
  end
@@ -55,11 +55,17 @@ module LicenseFinder
55
55
  end
56
56
 
57
57
  def pypi_def(name, version)
58
- uri = URI("https://pypi.org/pypi/#{name}/#{version}/json")
58
+ response = pypi_request("https://pypi.org/pypi/#{name}/#{version}/json")
59
+ response.is_a?(Net::HTTPSuccess) ? JSON.parse(response.body).fetch('info', {}) : {}
60
+ end
61
+
62
+ def pypi_request(location, limit = 10)
63
+ uri = URI(location)
59
64
  http = Net::HTTP.new(uri.host, uri.port)
60
65
  http.use_ssl = true
61
66
  response = http.get(uri.request_uri).response
62
- response.is_a?(Net::HTTPSuccess) ? JSON.parse(response.body).fetch('info', {}) : {}
67
+
68
+ response.is_a?(Net::HTTPRedirection) && limit > 0 ? pypi_request(response['location'], limit - 1) : response
63
69
  end
64
70
  end
65
71
  end
@@ -2,7 +2,7 @@ require 'license_finder/package_utils/possible_license_file'
2
2
 
3
3
  module LicenseFinder
4
4
  class LicenseFiles
5
- CANDIDATE_FILE_NAMES = %w[LICENSE License Licence COPYING README Readme ReadMe].freeze
5
+ CANDIDATE_FILE_NAMES = %w[LICENSE License LICENCE Licence COPYING README Readme ReadMe].freeze
6
6
  CANDIDATE_PATH_WILDCARD = "*{#{CANDIDATE_FILE_NAMES.join(',')}}*".freeze
7
7
 
8
8
  def self.find(install_path, options = {})
@@ -5,7 +5,9 @@ module LicenseFinder
5
5
  end
6
6
 
7
7
  def self.windows?
8
- RUBY_PLATFORM =~ /mswin|cygwin|mingw/
8
+ # SO: What is the correct way to detect if ruby is running on Windows?,
9
+ # cf. https://stackoverflow.com/a/21468976/2592915
10
+ Gem.win_platform? || RUBY_PLATFORM =~ /mswin|cygwin|mingw/
9
11
  end
10
12
  end
11
13
  end
@@ -1,3 +1,3 @@
1
1
  module LicenseFinder
2
- VERSION = '5.3.0'.freeze
2
+ VERSION = '5.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.0
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Collins
@@ -27,7 +27,7 @@ authors:
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2018-06-05 00:00:00.000000000 Z
30
+ date: 2018-08-20 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: bundler