diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-03-20 16:06:24 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-21 14:16:05 +0000 |
commit | de21a483063d9803c4ce1d62b03913ccad2931bd (patch) | |
tree | 7628f756eeaa06dad02f1e23e690cd84428867df | |
parent | 0d9fc8185945328837aa1a3d9d705afa56856853 (diff) | |
download | openembedded-core-de21a483063d9803c4ce1d62b03913ccad2931bd.tar.gz openembedded-core-de21a483063d9803c4ce1d62b03913ccad2931bd.tar.bz2 openembedded-core-de21a483063d9803c4ce1d62b03913ccad2931bd.zip |
buildhistory_analysis: use bb.utils.explode_dep_versions
Previously this had its own implementation of splitting a list of
packages with optional version e.g. "libncurses-dev (>= 5.9)"; switch to
using the already existing bitbake function which does this as it is
much better tested.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oe/buildhistory_analysis.py | 11 | ||||
-rwxr-xr-x | scripts/buildhistory-diff | 21 |
2 files changed, 27 insertions, 5 deletions
diff --git a/meta/lib/oe/buildhistory_analysis.py b/meta/lib/oe/buildhistory_analysis.py index d09911cb07..c0fa339e36 100644 --- a/meta/lib/oe/buildhistory_analysis.py +++ b/meta/lib/oe/buildhistory_analysis.py @@ -13,6 +13,7 @@ import os.path import difflib import git import re +import bb.utils # How to display fields @@ -55,8 +56,13 @@ class ChangeRecord: 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: @@ -68,6 +74,7 @@ class ChangeRecord: 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: diff --git a/scripts/buildhistory-diff b/scripts/buildhistory-diff index 6b344ebfaf..9936a4b605 100755 --- a/scripts/buildhistory-diff +++ b/scripts/buildhistory-diff @@ -6,7 +6,7 @@ # Author: Paul Eggleton <paul.eggleton@linux.intel.com> import sys -import os.path +import os # Ensure PythonGit is installed (buildhistory_analysis needs it) try: @@ -24,8 +24,23 @@ def main(): 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: |