Revert "cros_extract_deps: Begin moving functions."
This reverts commit 5e621a062888896735905356b36720ddd562cbf3.
Reason for revert: Suspected cause of chromium:1151385
Original change's description:
> cros_extract_deps: Begin moving functions.
>
> BUG=chromium:1135361
> TEST=./run_pytest
>
> Change-Id: I1430fca1dd9da971970734006941d7f5da91bd04
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2459506
> Tested-by: Alex Klein <saklein@chromium.org>
> Reviewed-by: Mike Frysinger <vapier@chromium.org>
> Commit-Queue: Alex Klein <saklein@chromium.org>
BUG=chromium:1135361, chromium:1151385
TEST=None
Change-Id: I0c5b4b4c208ff690495a3e0d45526d2882002250
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2552763
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
diff --git a/scripts/cros_extract_deps.py b/scripts/cros_extract_deps.py
index 3bccf52..1ef8e07 100644
--- a/scripts/cros_extract_deps.py
+++ b/scripts/cros_extract_deps.py
@@ -11,6 +11,7 @@
from __future__ import print_function
from __future__ import absolute_import
+import os
import sys
from chromite.lib.depgraph import DepGraphGenerator
@@ -18,8 +19,8 @@
from chromite.lib import commandline
from chromite.lib import cros_build_lib
from chromite.lib import cros_logging as logging
+from chromite.lib import osutils
from chromite.lib import pformat
-from chromite.lib import sysroot_lib
from chromite.lib.parser import package_info
@@ -153,6 +154,27 @@
return cpes
+def GenerateSDKCPVList(sysroot):
+ """Find all SDK packages from package.provided
+
+ Args:
+ sysroot: The board directory to use when finding SDK packages.
+
+ Returns:
+ A list of CPV Name strings, e.g.
+ ["sys-libs/glibc-2.23-r9", "dev-lang/go-1.8.3-r1"]
+ """
+ # Look at packages in package.provided.
+ sdk_file_path = os.path.join(sysroot, 'etc', 'portage',
+ 'profile', 'package.provided')
+ for line in osutils.ReadFile(sdk_file_path).splitlines():
+ # Skip comments and empty lines.
+ line = line.split('#', 1)[0].strip()
+ if not line:
+ continue
+ yield line
+
+
def GenerateCPEList(deps_list, sysroot):
"""Generate all CPEs for the packages included in deps_list and SDK packages
@@ -181,19 +203,20 @@
"""
cpe_dump = []
- # Generate CPEs for SDK packages.
- for pkg_info in sorted(sysroot_lib.get_sdk_provided_packages(sysroot)):
+ # Generage CPEs for SDK packages.
+ for sdk_cpv in sorted(GenerateSDKCPVList(sysroot)):
# Only add CPE for SDK CPVs missing in deps_list.
- if deps_list.get(pkg_info.cpvr) is not None:
+ if deps_list.get(sdk_cpv) is not None:
continue
- cpes = GetCPEFromCPV(pkg_info.category, pkg_info.package, pkg_info.version)
+ split = package_info.SplitCPV(sdk_cpv)
+ cpes = GetCPEFromCPV(split.category, split.package, split.version_no_rev)
if cpes:
- cpe_dump.append({'ComponentName': '%s' % pkg_info.atom,
+ cpe_dump.append({'ComponentName': '%s' % split.cp,
'Repository': 'cros',
'Targets': sorted(cpes)})
else:
- logging.warning('No CPE entry for %s', pkg_info.cpvr)
+ logging.warning('No CPE entry for %s', sdk_cpv)
# Generage CPEs for packages in deps_list.
for cpv, record in sorted(deps_list.items()):