diff --git a/napalm_linux/linux.py b/napalm_linux/linux.py index e503242..b091448 100644 --- a/napalm_linux/linux.py +++ b/napalm_linux/linux.py @@ -813,17 +813,20 @@ class LinuxDriver(OSDriver): def _get_packages_apt(self) -> list[PackageDict]: out = self._send( - "dpkg-query -W -f='${Package}\\t${Version}\\t${Installed-Size}\\t${binary:Summary}\\n' 2>/dev/null" + "dpkg-query -W -f='${Package}\\t${Version}\\t${Installed-Size}" + "\\t${source:Package}\\t${binary:Summary}\\n' 2>/dev/null" ) packages: list[PackageDict] = [] for line in out.splitlines(): - parts = line.split("\t", 3) + parts = line.split("\t", 4) if len(parts) < 2: continue name = parts[0].strip() version = parts[1].strip() size = int(parts[2].strip()) * 1024 if len(parts) > 2 and parts[2].strip().isdigit() else 0 - description = parts[3].strip() if len(parts) > 3 else "" + # Debian source package (e.g. openssh-server → openssh) for OSV matching. + source_package = parts[3].strip() if len(parts) > 3 and parts[3].strip() else name + description = parts[4].strip() if len(parts) > 4 else "" packages.append({ "name": name, "version": version, @@ -831,6 +834,7 @@ class LinuxDriver(OSDriver): "description": description, "size": size, "source": "apt", + "source_package": source_package, }) return packages