ossa-scanner 0.1.11__tar.gz → 0.1.13__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 (23) hide show
  1. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/PKG-INFO +26 -9
  2. ossa_scanner-0.1.13/README.md +31 -0
  3. ossa_scanner-0.1.13/ossa_scanner/__init__.py +1 -0
  4. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/utils/package_manager.py +28 -9
  5. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner.egg-info/PKG-INFO +26 -9
  6. ossa_scanner-0.1.11/README.md +0 -14
  7. ossa_scanner-0.1.11/ossa_scanner/__init__.py +0 -1
  8. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/LICENSE +0 -0
  9. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/cli.py +0 -0
  10. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/scanner.py +0 -0
  11. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/uploader.py +0 -0
  12. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/utils/__init__.py +0 -0
  13. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/utils/downloader.py +0 -0
  14. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/utils/hash_calculator.py +0 -0
  15. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/utils/os_detection.py +0 -0
  16. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner/utils/swhid_calculator.py +0 -0
  17. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner.egg-info/SOURCES.txt +0 -0
  18. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner.egg-info/dependency_links.txt +0 -0
  19. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner.egg-info/entry_points.txt +0 -0
  20. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner.egg-info/requires.txt +0 -0
  21. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/ossa_scanner.egg-info/top_level.txt +0 -0
  22. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/setup.cfg +0 -0
  23. {ossa_scanner-0.1.11 → ossa_scanner-0.1.13}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ossa_scanner
3
- Version: 0.1.11
3
+ Version: 0.1.13
4
4
  Summary: Open Source Software Advisory generator for Core and Base Linux Packages.
5
5
  Home-page: https://github.com/oscarvalenzuelab/ossa_scanner
6
6
  Author: Oscar Valenzuela
@@ -29,13 +29,30 @@ Requires-Dist: ssdeep
29
29
  Open Source Advisory Scanner (Generator)
30
30
 
31
31
  ## Centos/AL/AlmaLinux
32
- Install Python PyPI:
33
32
 
34
- > yum -y update
35
- > yum -y groupinstall "Development Tools"
36
- > yum -y install python-pip python3-devel
37
- > pip3 install swh-scanner
38
- > BUILD_LIB=1 pip install ssdeep
39
- > pip3 install ossa-scanner
33
+ ```
34
+ $ yum -y update
35
+ $ yum -y groupinstall "Development Tools"
36
+ $ yum -y install python-pip python3-devel
37
+ $ pip3 install swh-scanner
38
+ $ BUILD_LIB=1 pip install ssdeep
39
+ $ pip3 install ossa-scanner
40
+ ```
41
+
42
+ ## Ubuntu/Debian
43
+ ```
44
+ $ apt-get update -y && apt-get upgrade -y
45
+ $ apt install python3-pip -y
46
+ $ apt remove python3-blinker python3-zipp python3-urllib3 python3-typing-extensions python3-six -y
47
+ $ pip install swh-scanner --break-system-packages
48
+ $ apt install ssdeep python3-ssdeep -y
49
+ $ pip3 install ossa-scanner --break-system-packages
50
+ ```
51
+
52
+
53
+ ### *** Running in background ***
54
+ ```
40
55
  > nohup ossa_scanner &
41
- > pip install --upgrade --force-reinstall
56
+ ```
57
+ > pip install --upgrade ossa_scanner
58
+ cp -nf /home/ec2-user/* /home/ec2-user/OpenSourceAdvisoryDatabase/advisories/ && cd /home/ec2-user/OpenSourceAdvisoryDatabase/advisories/ && git add * && git commit -am 'Importing AmazonLinux OSSA' && git push
@@ -0,0 +1,31 @@
1
+ # ossa_scanner
2
+ Open Source Advisory Scanner (Generator)
3
+
4
+ ## Centos/AL/AlmaLinux
5
+
6
+ ```
7
+ $ yum -y update
8
+ $ yum -y groupinstall "Development Tools"
9
+ $ yum -y install python-pip python3-devel
10
+ $ pip3 install swh-scanner
11
+ $ BUILD_LIB=1 pip install ssdeep
12
+ $ pip3 install ossa-scanner
13
+ ```
14
+
15
+ ## Ubuntu/Debian
16
+ ```
17
+ $ apt-get update -y && apt-get upgrade -y
18
+ $ apt install python3-pip -y
19
+ $ apt remove python3-blinker python3-zipp python3-urllib3 python3-typing-extensions python3-six -y
20
+ $ pip install swh-scanner --break-system-packages
21
+ $ apt install ssdeep python3-ssdeep -y
22
+ $ pip3 install ossa-scanner --break-system-packages
23
+ ```
24
+
25
+
26
+ ### *** Running in background ***
27
+ ```
28
+ > nohup ossa_scanner &
29
+ ```
30
+ > pip install --upgrade ossa_scanner
31
+ cp -nf /home/ec2-user/* /home/ec2-user/OpenSourceAdvisoryDatabase/advisories/ && cd /home/ec2-user/OpenSourceAdvisoryDatabase/advisories/ && git add * && git commit -am 'Importing AmazonLinux OSSA' && git push
@@ -0,0 +1 @@
1
+ __version__ = "0.1.13"
@@ -1,5 +1,7 @@
1
1
  import subprocess
2
2
  import re
3
+ import os
4
+ import shutil
3
5
 
4
6
 
5
7
  def list_packages(package_manager):
@@ -38,12 +40,9 @@ def list_packages(package_manager):
38
40
  k_packages += 1
39
41
  if k_packages >= max_packages:
40
42
  break
41
-
42
43
  package_list = sorted(list(extracted_packages))
43
44
 
44
45
  print(f"Total unique packages: {len(package_list)}")
45
- # for package in package_list:
46
- # print(package)
47
46
  return package_list
48
47
 
49
48
 
@@ -65,7 +64,7 @@ def get_package_info(package_manager, package_name):
65
64
  elif package_manager in ['yum', 'dnf']:
66
65
  return parse_yum_info(output)
67
66
  elif package_manager == 'apt':
68
- return parse_apt_info(output)
67
+ return parse_apt_info(output, package_name)
69
68
  except subprocess.CalledProcessError as e:
70
69
  print(f"Command failed: {e}")
71
70
  return None
@@ -129,29 +128,49 @@ def parse_yum_info(output):
129
128
  info["summary"] = line.split(":", 1)[1].strip()
130
129
  return info
131
130
 
132
- def parse_apt_info(output):
131
+ def parse_apt_info(output, package_name):
133
132
  """Parses apt-cache show output."""
134
133
  info = {}
135
134
  lines = output.splitlines()
136
135
 
137
136
  for line in lines:
138
- if line.startswith("License:") or "License" in line:
139
- info["licenses"] = line.split(":", 1)[1].strip()
140
- elif line.startswith("Homepage:"):
137
+ if line.startswith("Homepage:"):
141
138
  info["website"] = line.split(":", 1)[1].strip()
142
139
  elif "Copyright" in line:
143
140
  info["references"] = line.strip()
144
141
  info["licenses"] = extract_spdx_ids(info["licenses"])
145
142
  severity = license_classificaton(info["licenses"])
146
143
 
144
+ license = apt_get_license_from_source(package_name)
145
+
147
146
  # Ensure all keys are present even if data is missing
148
147
  return {
149
- "licenses": info.get("licenses", "NOASSERTION"),
148
+ "licenses": license,
150
149
  "copyright": info.get("copyright", "NOASSERTION"),
151
150
  "references": info.get("references", "NOASSERTION"),
152
151
  "severity": severity,
153
152
  }
154
153
 
154
+ def apt_get_license_from_source(package_name):
155
+ try:
156
+ subprocess.run(["apt-get", "source", package_name], check=True, capture_output=True, text=True)
157
+ source_dirs = [d for d in os.listdir() if d.startswith(package_name) and os.path.isdir(d)]
158
+ if not source_dirs:
159
+ return "NOASSERTION"
160
+ package_dir = source_dirs[0]
161
+ copyright_file = os.path.join(package_dir, "debian", "copyright")
162
+ licenses = []
163
+ if os.path.exists(copyright_file):
164
+ with open(copyright_file, "r", encoding="utf-8") as f:
165
+ for line in f:
166
+ if re.search(r"(?i)license:", line):
167
+ licenses.append(line.split(":", 1)[1].strip())
168
+ shutil.rmtree(package_dir, ignore_errors=True)
169
+ return ", ".join(set(licenses)) if licenses else "NOASSERTION"
170
+ except subprocess.CalledProcessError as e:
171
+ print(f"Error fetching source package: {e}")
172
+ return "NOASSERTION"
173
+
155
174
  def extract_spdx_ids(license_string):
156
175
  if not license_string.strip():
157
176
  return "No valid SPDX licenses found"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ossa_scanner
3
- Version: 0.1.11
3
+ Version: 0.1.13
4
4
  Summary: Open Source Software Advisory generator for Core and Base Linux Packages.
5
5
  Home-page: https://github.com/oscarvalenzuelab/ossa_scanner
6
6
  Author: Oscar Valenzuela
@@ -29,13 +29,30 @@ Requires-Dist: ssdeep
29
29
  Open Source Advisory Scanner (Generator)
30
30
 
31
31
  ## Centos/AL/AlmaLinux
32
- Install Python PyPI:
33
32
 
34
- > yum -y update
35
- > yum -y groupinstall "Development Tools"
36
- > yum -y install python-pip python3-devel
37
- > pip3 install swh-scanner
38
- > BUILD_LIB=1 pip install ssdeep
39
- > pip3 install ossa-scanner
33
+ ```
34
+ $ yum -y update
35
+ $ yum -y groupinstall "Development Tools"
36
+ $ yum -y install python-pip python3-devel
37
+ $ pip3 install swh-scanner
38
+ $ BUILD_LIB=1 pip install ssdeep
39
+ $ pip3 install ossa-scanner
40
+ ```
41
+
42
+ ## Ubuntu/Debian
43
+ ```
44
+ $ apt-get update -y && apt-get upgrade -y
45
+ $ apt install python3-pip -y
46
+ $ apt remove python3-blinker python3-zipp python3-urllib3 python3-typing-extensions python3-six -y
47
+ $ pip install swh-scanner --break-system-packages
48
+ $ apt install ssdeep python3-ssdeep -y
49
+ $ pip3 install ossa-scanner --break-system-packages
50
+ ```
51
+
52
+
53
+ ### *** Running in background ***
54
+ ```
40
55
  > nohup ossa_scanner &
41
- > pip install --upgrade --force-reinstall
56
+ ```
57
+ > pip install --upgrade ossa_scanner
58
+ cp -nf /home/ec2-user/* /home/ec2-user/OpenSourceAdvisoryDatabase/advisories/ && cd /home/ec2-user/OpenSourceAdvisoryDatabase/advisories/ && git add * && git commit -am 'Importing AmazonLinux OSSA' && git push
@@ -1,14 +0,0 @@
1
- # ossa_scanner
2
- Open Source Advisory Scanner (Generator)
3
-
4
- ## Centos/AL/AlmaLinux
5
- Install Python PyPI:
6
-
7
- > yum -y update
8
- > yum -y groupinstall "Development Tools"
9
- > yum -y install python-pip python3-devel
10
- > pip3 install swh-scanner
11
- > BUILD_LIB=1 pip install ssdeep
12
- > pip3 install ossa-scanner
13
- > nohup ossa_scanner &
14
- > pip install --upgrade --force-reinstall
@@ -1 +0,0 @@
1
- __version__ = "0.1.11"
File without changes
File without changes
File without changes