9 sys.stderr.write("Set PYTHONPATH to bitbake/lib and restart.\n")
10 sys.stderr.write("The backtrace can be seen below.\n")
14 def strip_oe_version(oe_version):
16 We need to strip the package epoch... and the PR to compare
17 it to the FreeBSD versions. Also FreeBSD seems to use _N as
18 PR so we might need to do more..
20 split = oe_version.split(':', 1)
23 split = ver.rsplit('-r', 1)
27 def strip_bsd_version(bsd_version):
29 FreeBSD is adding ,1 for revisions.. remove that
31 # FIXME return a tuple with a revision...
32 split = bsd_version.rsplit(',', 1)
34 split = split.rsplit('_', 1)
37 def compare_versions(oe, freebsd, not_known):
38 def handle_package(oe_name, bsd_name):
40 if oe_name == bsd_name:
41 print >> not_known, "%s is not in OE" % oe_name
44 oe_version = strip_oe_version(oe[oe_name])
45 for ver in freebsd[bsd_name]:
48 for (cmp, vers) in ver.versions:
49 bsd_ver = strip_bsd_version(vers)
50 cmp_res = bb.utils.vercmp(('0', oe_version, 'r0'), ('0', bsd_ver, 'r0'))
74 str.append("%s %s %s %s" % (oe_name, oe_version, cmp, bsd_ver))
76 print " && ".join(str), ver.link
78 for package in freebsd.keys():
79 # handle the various versions of OE packages
80 handle_package(package, package)
81 handle_package("%s-native" % package, package)
82 handle_package("%s-full-native" % package, package)
83 handle_package("%s-sdk" % package, package)
87 oe_packages = oe.read_available("available")
88 freebsd_vuln = freebsd.read_auditfile("auditfile")
89 buggy = open("not_in_oe.bugs", "w+")
91 compare_versions(oe=oe_packages, freebsd=freebsd_vuln, not_known=buggy)