import difflib
import git
import re
+import bb.utils
# How to display fields
prefix = ''
def pkglist_split(pkgs):
- pkgit = re.finditer(r'[a-zA-Z0-9.+-]+( \([><=]+ [^ )]+\))?', pkgs, 0)
- pkglist = [p.group(0) for p in pkgit]
+ depver = bb.utils.explode_dep_versions(pkgs)
+ pkglist = []
+ for k,v in depver.iteritems():
+ if v:
+ pkglist.append("%s (%s)" % (k,v))
+ else:
+ pkglist.append(k)
return pkglist
if self.fieldname in list_fields or self.fieldname in list_order_fields:
bitems = self.newvalue.split()
removed = list(set(aitems) - set(bitems))
added = list(set(bitems) - set(aitems))
+
if removed or added:
out = '%s:%s%s' % (self.fieldname, ' removed "%s"' % ' '.join(removed) if removed else '', ' added "%s"' % ' '.join(added) if added else '')
else:
# Author: Paul Eggleton <paul.eggleton@linux.intel.com>
import sys
-import os.path
+import os
# Ensure PythonGit is installed (buildhistory_analysis needs it)
try:
sys.exit(1)
# Set path to OE lib dir so we can import the buildhistory_analysis module
- newpath = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])) + '/../meta/lib')
- sys.path = sys.path + [newpath]
+ basepath = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])) + '/..')
+ newpath = basepath + '/meta/lib'
+ # Set path to bitbake lib dir so the buildhistory_analysis module can load bb.utils
+ if os.path.exists(basepath + '/bitbake/lib/bb'):
+ bitbakepath = basepath + '/bitbake'
+ else:
+ # look for bitbake/bin dir in PATH
+ bitbakepath = None
+ for pth in os.environ['PATH'].split(':'):
+ if os.path.exists(os.path.join(pth, '../lib/bb')):
+ bitbakepath = os.path.abspath(os.path.join(pth, '..'))
+ break
+ if not bitbakepath:
+ print("Unable to find bitbake by searching parent directory of this script or PATH")
+ sys.exit(1)
+
+ sys.path.extend([newpath, bitbakepath + '/lib'])
import oe.buildhistory_analysis
if len(sys.argv) > 3: