Update format=cpe output to match consumer-side requirements.

This also adds sorting so that it's more deterministic and amenable
to diffing between runs.

BUG=none
TEST=cros_extract_deps --format=cpe --board=x86-generic chromeos

Change-Id: Ib5894c811c7747c53727fabd8086bfda13b720cd
Reviewed-on: https://gerrit.chromium.org/gerrit/61322
Tested-by: Jim Hebert <jimhebert@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Commit-Queue: Jim Hebert <jimhebert@chromium.org>
diff --git a/scripts/cros_extract_deps.py b/scripts/cros_extract_deps.py
index c4180bd..ad65ec3 100644
--- a/scripts/cros_extract_deps.py
+++ b/scripts/cros_extract_deps.py
@@ -113,11 +113,11 @@
   cpe_dump = []
   for cpv, record in deps_list.items():
     if record["cpes"]:
-      for cpe in record["cpes"]:
-        cpe_dump.append({"Name": cpv, "Target": cpe, "Repository": "cros"})
+      cpe_dump.append({"Name": cpv, "Targets": sorted(record["cpes"]),
+                       "Repository": "cros"})
     else:
       cros_build_lib.Warning("No CPE entry for %s", cpv)
-  return cpe_dump
+  return sorted(cpe_dump, key=lambda k: k["Name"])
 
 
 def main(argv):