fosslight-dependency 4.1.5__tar.gz → 4.1.7__tar.gz

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 (39) hide show
  1. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/PKG-INFO +1 -1
  2. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/requirements.txt +1 -0
  3. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/setup.py +1 -1
  4. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/_package_manager.py +18 -0
  5. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Maven.py +3 -2
  6. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Pub.py +21 -19
  7. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Unity.py +19 -2
  8. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency.egg-info/PKG-INFO +1 -1
  9. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency.egg-info/requires.txt +1 -0
  10. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/LICENSE +0 -0
  11. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/LICENSES/Apache-2.0.txt +0 -0
  12. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/LICENSES/LicenseRef-3rd_party_licenses.txt +0 -0
  13. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/LICENSES/MIT.txt +0 -0
  14. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/MANIFEST.in +0 -0
  15. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/README.md +0 -0
  16. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/setup.cfg +0 -0
  17. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/__init__.py +0 -0
  18. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/_analyze_dependency.py +0 -0
  19. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/_graph_convertor.py +0 -0
  20. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/_help.py +0 -0
  21. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/constant.py +0 -0
  22. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/dependency_item.py +0 -0
  23. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Android.py +0 -0
  24. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Cargo.py +0 -0
  25. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Carthage.py +0 -0
  26. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Cocoapods.py +0 -0
  27. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Go.py +0 -0
  28. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Gradle.py +0 -0
  29. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Helm.py +0 -0
  30. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Npm.py +0 -0
  31. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Nuget.py +0 -0
  32. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Pypi.py +0 -0
  33. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/Swift.py +0 -0
  34. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/package_manager/__init__.py +0 -0
  35. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency/run_dependency_scanner.py +0 -0
  36. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency.egg-info/SOURCES.txt +0 -0
  37. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency.egg-info/dependency_links.txt +0 -0
  38. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency.egg-info/entry_points.txt +0 -0
  39. {fosslight_dependency-4.1.5 → fosslight_dependency-4.1.7}/src/fosslight_dependency.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fosslight_dependency
3
- Version: 4.1.5
3
+ Version: 4.1.7
4
4
  Summary: FOSSLight Dependency Scanner
5
5
  Home-page: https://github.com/fosslight/fosslight_dependency_scanner
6
6
  Author: LG Electronics
@@ -11,3 +11,4 @@ defusedxml
11
11
  packageurl-python
12
12
  igraph
13
13
  matplotlib
14
+ pyaskalono
@@ -35,7 +35,7 @@ if __name__ == "__main__":
35
35
 
36
36
  setup(
37
37
  name=_PACKAEG_NAME,
38
- version='4.1.5',
38
+ version='4.1.7',
39
39
  package_dir={"": "src"},
40
40
  packages=find_namespace_packages(where='src'),
41
41
  description='FOSSLight Dependency Scanner',
@@ -11,6 +11,7 @@ import re
11
11
  import base64
12
12
  import subprocess
13
13
  import shutil
14
+ import stat
14
15
  import fosslight_util.constant as constant
15
16
  import fosslight_dependency.constant as const
16
17
  from packageurl.contrib import url2purl
@@ -116,6 +117,7 @@ class PackageManager:
116
117
  if ret_plugin:
117
118
  logger.warning('Also it cannot run android-dependency-scanning plugin.')
118
119
  if ret_task:
120
+ current_mode = change_file_mode(cmd_gradle)
119
121
  if ret_alldeps:
120
122
  cmd = f"{cmd_gradle} allDeps"
121
123
  try:
@@ -145,6 +147,7 @@ class PackageManager:
145
147
  except Exception as e:
146
148
  logger.error(f'Fail to run {cmd}: {e}')
147
149
  ret_task = False
150
+ change_file_mode(cmd_gradle, current_mode)
148
151
 
149
152
  if os.path.isfile(gradle_backup):
150
153
  os.remove(const.SUPPORT_PACKAE.get(self.package_manager_name))
@@ -422,3 +425,18 @@ def check_and_run_license_scanner(platform, license_scanner_bin, file_dir):
422
425
  license_name = ""
423
426
 
424
427
  return license_name
428
+
429
+
430
+ def change_file_mode(filepath, mode=''):
431
+ current_mode = os.stat(filepath).st_mode
432
+
433
+ if not os.path.exists(filepath):
434
+ logger.debug(f"The file{filepath} does not exist.")
435
+ else:
436
+ if not mode:
437
+ new_mode = current_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
438
+ else:
439
+ new_mode = mode
440
+ os.chmod(filepath, new_mode)
441
+ logger.debug(f"File mode of {filepath} has been changed to {oct(new_mode)}.")
442
+ return current_mode
@@ -13,7 +13,7 @@ import re
13
13
  import fosslight_util.constant as constant
14
14
  import fosslight_dependency.constant as const
15
15
  from fosslight_dependency._package_manager import PackageManager
16
- from fosslight_dependency._package_manager import version_refine, get_url_to_purl
16
+ from fosslight_dependency._package_manager import version_refine, get_url_to_purl, change_file_mode
17
17
  from fosslight_dependency.dependency_item import DependencyItem, change_dependson_to_purl
18
18
  from fosslight_util.oss_item import OssItem
19
19
 
@@ -142,7 +142,7 @@ class Maven(PackageManager):
142
142
  else:
143
143
  cmd_mvn = "mvn"
144
144
  cmd = f"{cmd_mvn} license:aggregate-download-licenses"
145
-
145
+ current_mode = change_file_mode(cmd_mvn)
146
146
  ret = subprocess.call(cmd, shell=True)
147
147
  if ret != 0:
148
148
  logger.error(f"Failed to run maven plugin: {cmd}")
@@ -159,6 +159,7 @@ class Maven(PackageManager):
159
159
  except Exception as e:
160
160
  logger.error(f"Failed to run '{cmd}': {e}")
161
161
  self.set_direct_dependencies(False)
162
+ change_file_mode(cmd_mvn, current_mode)
162
163
 
163
164
  def create_dep_stack(self, dep_line):
164
165
  dep_stack = []
@@ -10,10 +10,11 @@ import re
10
10
  import shutil
11
11
  import yaml
12
12
  import subprocess
13
+ from askalono import identify
13
14
  import fosslight_util.constant as constant
14
15
  import fosslight_dependency.constant as const
15
16
  from fosslight_dependency._package_manager import PackageManager
16
- from fosslight_dependency._package_manager import check_and_run_license_scanner, get_url_to_purl
17
+ from fosslight_dependency._package_manager import get_url_to_purl
17
18
  from fosslight_dependency.dependency_item import DependencyItem, change_dependson_to_purl
18
19
  from fosslight_util.oss_item import OssItem
19
20
 
@@ -27,6 +28,7 @@ class Pub(PackageManager):
27
28
  input_file_name = 'tmp_flutter_oss_licenses.json'
28
29
  tmp_dir = "fl_dependency_tmp_dir"
29
30
  cur_path = ''
31
+ pkg_source_list = {}
30
32
 
31
33
  def __init__(self, input_dir, output_dir):
32
34
  super().__init__(self.package_manager_name, self.dn_url, input_dir, output_dir)
@@ -92,6 +94,7 @@ class Pub(PackageManager):
92
94
  if dep_key not in self.relation_tree:
93
95
  self.relation_tree[dep_key] = []
94
96
  self.relation_tree[dep_key].extend(p['dependencies'])
97
+ self.pkg_source_list[dep_key] = p['source']
95
98
 
96
99
  for i in self.relation_tree:
97
100
  tmp_dep = []
@@ -110,10 +113,9 @@ class Pub(PackageManager):
110
113
  with open(f_name, 'r', encoding='utf8') as pub_file:
111
114
  json_f = json.load(pub_file)
112
115
 
113
- try:
114
- purl_dict = {}
115
-
116
- for json_data in json_f:
116
+ purl_dict = {}
117
+ for json_data in json_f:
118
+ try:
117
119
  dep_item = DependencyItem()
118
120
  oss_item = OssItem()
119
121
  oss_origin_name = json_data['name']
@@ -133,18 +135,9 @@ class Pub(PackageManager):
133
135
  purl_dict[f'{oss_origin_name}({oss_item.version})'] = dep_item.purl
134
136
  license_txt = json_data['license']
135
137
  if license_txt is not None:
136
- tmp_license_txt = open(tmp_license_txt_file_name, 'w', encoding='utf-8')
137
- tmp_license_txt.write(license_txt)
138
- tmp_license_txt.close()
139
-
140
- license_name_with_license_scanner = check_and_run_license_scanner(self.platform,
141
- self.license_scanner_bin,
142
- tmp_license_txt_file_name)
143
-
144
- if license_name_with_license_scanner != "":
145
- oss_item.license = license_name_with_license_scanner
146
- else:
147
- oss_item.license = ''
138
+ detect_askalono = identify(license_txt)
139
+ if detect_askalono.score > 0.7:
140
+ oss_item.license = detect_askalono.name
148
141
 
149
142
  if self.direct_dep:
150
143
  if oss_origin_name not in self.total_dep_list:
@@ -159,11 +152,20 @@ class Pub(PackageManager):
159
152
 
160
153
  if f'{oss_origin_name}({oss_item.version})' in self.relation_tree:
161
154
  dep_item.depends_on_raw = self.relation_tree[f'{oss_origin_name}({oss_item.version})']
155
+ if f'{oss_origin_name}({oss_item.version})' in self.pkg_source_list:
156
+ pkg_source = self.pkg_source_list[f'{oss_origin_name}({oss_item.version})']
157
+ if pkg_source in ['git', 'path']:
158
+ oss_item.download_location = json_data['repository']
159
+ if oss_item.download_location is None:
160
+ oss_item.download_location = json_data['homepage']
161
+ if oss_item.download_location is None:
162
+ oss_item.download_location = ''
163
+ oss_item.comment = pkg_source
162
164
 
163
165
  dep_item.oss_items.append(oss_item)
164
166
  self.dep_items.append(dep_item)
165
- except Exception as e:
166
- logger.error(f"Fail to parse pub oss information: {e}")
167
+ except Exception as e:
168
+ logger.error(f"Fail to parse pub oss information: {e}")
167
169
  if self.direct_dep:
168
170
  self.dep_items = change_dependson_to_purl(purl_dict, self.dep_items)
169
171
 
@@ -7,6 +7,7 @@ import os
7
7
  import logging
8
8
  import re
9
9
  import yaml
10
+ import requests
10
11
  import fosslight_util.constant as constant
11
12
  import fosslight_dependency.constant as const
12
13
  from fosslight_dependency._package_manager import PackageManager
@@ -76,11 +77,14 @@ class Unity(PackageManager):
76
77
  if oss_item.homepage and oss_item.homepage.startswith('git@'):
77
78
  oss_item.homepage = oss_item.homepage.replace('git@', 'https://')
78
79
  if oss_item.homepage is None or oss_item.homepage.startswith(self.unity_internal_url):
79
- if license_name != proprietary_license:
80
+ if (license_name != proprietary_license) and license_name != '':
80
81
  oss_item.homepage = f'{self.mirror_url}{oss_item.name}'
81
82
  if oss_item.homepage is None:
82
83
  oss_item.homepage = ''
83
-
84
+ else:
85
+ if not check_url_alive(oss_item.homepage):
86
+ minor_version = '.'.join(oss_item.version.split('.')[0:2])
87
+ oss_item.homepage = f'https://docs.unity3d.com/Packages/{oss_item.name}@{minor_version}'
84
88
  oss_item.download_location = oss_item.homepage
85
89
  dep_item.purl = get_url_to_purl(oss_item.download_location, self.package_manager_name)
86
90
  if dep_item.purl == 'None':
@@ -102,3 +106,16 @@ class Unity(PackageManager):
102
106
  logger.error(f"Fail to parse unity oss information: {e}")
103
107
 
104
108
  return
109
+
110
+
111
+ def check_url_alive(url):
112
+ alive = False
113
+ try:
114
+ response = requests.get(url)
115
+ if response.status_code == 200:
116
+ alive = True
117
+ else:
118
+ logger.debug(f"{url} returned status code {response.status_code}")
119
+ except requests.exceptions.RequestException as e:
120
+ logger.debug(f"Check if url({url})is alive err: {e}")
121
+ return alive
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fosslight-dependency
3
- Version: 4.1.5
3
+ Version: 4.1.7
4
4
  Summary: FOSSLight Dependency Scanner
5
5
  Home-page: https://github.com/fosslight/fosslight_dependency_scanner
6
6
  Author: LG Electronics
@@ -11,3 +11,4 @@ defusedxml
11
11
  packageurl-python
12
12
  igraph
13
13
  matplotlib
14
+ pyaskalono