Lines Matching refs:pkg
425 async def check_url_status(session, pkg, npkgs, retry=True): argument
429 async with session.get(pkg.url) as resp:
431 pkg.status['url'] = ("error", "invalid {}".format(resp.status))
433 print("[%04d/%04d] %s" % (check_url_count, npkgs, pkg.name))
437 return await check_url_status(session, pkg, npkgs, retry=False)
439 pkg.status['url'] = ("error", "invalid (err)")
441 print("[%04d/%04d] %s" % (check_url_count, npkgs, pkg.name))
444 pkg.status['url'] = ("ok", "valid")
446 print("[%04d/%04d] %s" % (check_url_count, npkgs, pkg.name))
454 for pkg in packages:
455 tasks.append(asyncio.ensure_future(check_url_status(sess, pkg, len(packages))))
459 def check_package_latest_version_set_status(pkg, status, version, identifier): argument
460 pkg.latest_version = {
466 if pkg.latest_version['status'] == RM_API_STATUS_ERROR:
467 pkg.status['version'] = ('warning', "Release Monitoring API error")
468 elif pkg.latest_version['status'] == RM_API_STATUS_NOT_FOUND:
469 pkg.status['version'] = ('warning', "Package not found on Release Monitoring")
471 if pkg.latest_version['version'] is None:
472 pkg.status['version'] = ('warning', "No upstream version available on Release Monitoring")
473 elif pkg.latest_version['version'] != pkg.current_version:
474 …pkg.status['version'] = ('error', "The newer version {} is available upstream".format(pkg.latest_v…
476 pkg.status['version'] = ('ok', 'up-to-date')
479 async def check_package_get_latest_version_by_distro(session, pkg, retry=True): argument
480 url = "https://release-monitoring.org//api/project/Buildroot/%s" % pkg.name
488 check_package_latest_version_set_status(pkg,
496 return await check_package_get_latest_version_by_distro(session, pkg, retry=False)
501 async def check_package_get_latest_version_by_guess(session, pkg, retry=True): argument
502 url = "https://release-monitoring.org/api/projects/?pattern=%s" % pkg.name
510 … projects = [p for p in data['projects'] if p['name'] == pkg.name and 'stable_versions' in p]
514 check_package_latest_version_set_status(pkg,
522 return await check_package_get_latest_version_by_guess(session, pkg, retry=False)
530 async def check_package_latest_version_get(session, pkg, npkgs): argument
533 if await check_package_get_latest_version_by_distro(session, pkg):
535 print("[%04d/%04d] %s" % (check_latest_count, npkgs, pkg.name))
538 if await check_package_get_latest_version_by_guess(session, pkg):
540 print("[%04d/%04d] %s" % (check_latest_count, npkgs, pkg.name))
543 check_package_latest_version_set_status(pkg,
547 print("[%04d/%04d] %s" % (check_latest_count, npkgs, pkg.name))
565 for pkg in [p for p in packages if not p.is_actual_package]:
566 pkg.status['version'] = ("na", "no valid package infra")
572 for pkg in packages:
573 … tasks.append(asyncio.ensure_future(check_package_latest_version_get(sess, pkg, len(packages))))
581 for pkg in cpe_product_pkgs[product]:
582 … if cve.affects(pkg.name, pkg.current_version, pkg.ignored_cves, pkg.cpeid) == cve.CVE_AFFECTS:
583 pkg.cves.append(cve.identifier)
591 for pkg in packages:
592 if not pkg.is_actual_package:
593 pkg.status['cve'] = ("na", "N/A")
595 if not pkg.current_version:
596 pkg.status['cve'] = ("na", "no version information available")
598 if pkg.cpeid:
599 cpe_product = cvecheck.cpe_product(pkg.cpeid)
600 cpe_product_pkgs[cpe_product].append(pkg)
602 cpe_product_pkgs[pkg.name].append(pkg)
607 for pkg in packages:
608 if 'cve' not in pkg.status:
609 if pkg.cves:
610 pkg.status['cve'] = ("error", "affected by CVEs")
612 pkg.status['cve'] = ("ok", "not affected by CVEs")
630 for pkg in packages:
635 if len(pkg.infras) > 0:
636 infra = pkg.infras[0][1]
640 if pkg.is_status_ok('license'):
644 if pkg.is_status_ok('license-files'):
648 if pkg.is_status_ok('hash'):
652 if pkg.latest_version['status'] == RM_API_STATUS_FOUND_BY_DISTRO:
656 if not pkg.latest_version['version']:
658 elif pkg.latest_version['version'] == pkg.current_version:
662 stats["patches"] += pkg.patch_count
663 stats["total-cves"] += len(pkg.cves)
664 if len(pkg.cves) != 0:
666 if pkg.cpeid:
796 def dump_html_pkg(f, pkg): argument
798 f.write(" <td>%s</td>\n" % pkg.path)
802 if pkg.patch_count == 0:
804 elif pkg.patch_count < 5:
809 (" ".join(td_class), str(pkg.patch_count)))
812 infra = infra_str(pkg.infras)
819 (" ".join(td_class), infra_str(pkg.infras)))
823 if pkg.is_status_ok('license'):
828 (" ".join(td_class), boolean_str(pkg.is_status_ok('license'))))
832 if pkg.is_status_ok('license-files'):
837 (" ".join(td_class), boolean_str(pkg.is_status_ok('license-files'))))
841 if pkg.is_status_ok('hash'):
846 (" ".join(td_class), boolean_str(pkg.is_status_ok('hash'))))
849 if len(pkg.current_version) > 20:
850 current_version = pkg.current_version[:20] + "..."
852 current_version = pkg.current_version
856 if pkg.latest_version['status'] == RM_API_STATUS_ERROR:
858 if pkg.latest_version['version'] is None:
860 elif pkg.latest_version['version'] != pkg.current_version:
865 if pkg.latest_version['status'] == RM_API_STATUS_ERROR:
867 elif pkg.latest_version['status'] == RM_API_STATUS_NOT_FOUND:
870 if pkg.latest_version['version'] is None:
874 (pkg.latest_version['id'], str(pkg.latest_version['version']))
878 if pkg.latest_version['status'] == RM_API_STATUS_FOUND_BY_DISTRO:
888 if pkg.warnings == 0:
893 (" ".join(td_class), pkg.warnings))
897 url_str = pkg.status['url'][1]
898 if pkg.status['url'][0] in ("error", "warning"):
900 if pkg.status['url'][0] == "error":
902 url_str = "<a href=%s>%s</a>" % (pkg.url, pkg.status['url'][1])
905 url_str = "<a href=%s>Link</a>" % pkg.url
911 if pkg.is_status_ok("cve"):
913 elif pkg.is_status_error("cve"):
915 elif pkg.is_status_na("cve") and not pkg.is_actual_package:
920 if pkg.is_status_error("cve"):
921 for cve in pkg.cves:
923 elif pkg.is_status_na("cve"):
924 f.write(" %s" % pkg.status['cve'][1])
931 if pkg.ignored_cves:
934 for ignored_cve in pkg.ignored_cves:
940 if pkg.is_status_ok("cpe"):
942 elif pkg.is_status_error("cpe"):
944 elif pkg.is_status_na("cpe") and not pkg.is_actual_package:
949 if pkg.cpeid:
950 f.write(" <code>%s</code>\n" % pkg.cpeid)
951 if not pkg.is_status_ok("cpe"):
952 if pkg.is_actual_package and pkg.current_version:
953 if pkg.cpeid:
955 (pkg.status['cpe'][1], ":".join(pkg.cpeid.split(":")[0:5])))
958 (pkg.status['cpe'][1], pkg.name))
960 f.write(" %s\n" % pkg.status['cpe'][1])
986 for pkg in sorted(packages):
987 dump_html_pkg(f, pkg)
1052 pkg.name: {
1054 for k, v in pkg.__dict__.items()
1056 } for pkg in packages
1139 for pkg in packages:
1140 pkg.set_infra()
1141 pkg.set_license()
1142 pkg.set_hash_info()
1143 pkg.set_patch_count()
1144 pkg.set_check_package_warnings()
1145 pkg.set_current_version()
1146 pkg.set_cpeid()
1147 pkg.set_url()
1148 pkg.set_ignored_cves()
1149 pkg.set_developers(developers)