Skip to content

Commit c45cba0

Browse files
committed
Remove now obsolete sbomnix.meta
Signed-off-by: Henri Rosten <henri.rosten@unikie.com>
1 parent 6a074e8 commit c45cba0

2 files changed

Lines changed: 25 additions & 50 deletions

File tree

src/sbomnix/meta.py

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/sbomnix/sbomdb.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import argparse
1313
import json
1414
import logging
15+
import os
1516
import re
1617
import uuid
1718
from datetime import datetime, timezone
@@ -23,8 +24,8 @@
2324

2425
from common.utils import LOG, df_to_csv_file, get_py_pkg_version
2526
from nixgraph.graph import NixDependencies
27+
from nixmeta.scanner import NixMetaScanner
2628
from sbomnix.cdx import _drv_to_cdx_component, _drv_to_cdx_dependency, _vuln_to_cdx_vuln
27-
from sbomnix.meta import Meta
2829
from sbomnix.nix import Store, find_deriver
2930
from vulnxscan.vulnscan import VulnScan
3031

@@ -62,7 +63,6 @@ def __init__(
6263
self.df_sbomdb = None
6364
self.df_sbomdb_outputs_exploded = None
6465
self.flakeref = flakeref
65-
self.meta = None
6666
self.include_cpe = include_cpe
6767
self._init_sbomdb(include_meta)
6868
self.include_vulns = include_vulns
@@ -128,11 +128,10 @@ def _init_sbomdb(self, include_meta):
128128

129129
def _sbomdb_join_meta(self):
130130
"""Join self.df_sbomdb with meta information"""
131-
self.meta = Meta()
132131
if self.flakeref:
133-
df_meta = self.meta.get_nixpkgs_meta(self.flakeref)
132+
df_meta = self._get_nixpkgs_meta(self.flakeref)
134133
else:
135-
df_meta = self.meta.get_nixpkgs_meta()
134+
df_meta = self._get_nixpkgs_meta()
136135
if df_meta is None or df_meta.empty:
137136
LOG.warning(
138137
"Failed reading nix meta information: "
@@ -150,6 +149,27 @@ def _sbomdb_join_meta(self):
150149
suffixes=["", "_meta"],
151150
)
152151

152+
def _get_nixpkgs_meta(self, nixref=None):
153+
"""
154+
Return nixpkgs meta pinned in `nixref`. `nixref` can point to a
155+
nix store path or flake reference optionally with an output attribute.
156+
If all else fails, attempt to read the nix meta information from
157+
the nixpkgs store path specified in NIX_PATH environment variable.
158+
"""
159+
scanner = NixMetaScanner()
160+
scanner.scan(nixref)
161+
df = scanner.to_df()
162+
# Fallback: try reading nix meta from nixpkgs referenced in NIX_PATH
163+
if (df is None or df.empty) and "NIX_PATH" in os.environ:
164+
LOG.debug("Reading nixpkgs path from NIX_PATH environment")
165+
nix_path = os.environ["NIX_PATH"]
166+
m_nixpkgs = re.match(r".*nixpkgs=([^:\s]+)", nix_path)
167+
if m_nixpkgs:
168+
nixpkgs_path = m_nixpkgs.group(1)
169+
scanner.scan(nixpkgs_path)
170+
df = scanner.to_df()
171+
return df
172+
153173
def _lookup_dependencies(self, drv, uid="store_path"):
154174
"""
155175
Lookup the runtime and buildtime dependencies for `drv`.

0 commit comments

Comments
 (0)