diff options
Diffstat (limited to 'bitbake/lib')
| -rw-r--r-- | bitbake/lib/bb/cache.py | 35 | 
1 files changed, 13 insertions, 22 deletions
| diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index 93dccf21f1..3edd80ec3b 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py @@ -402,22 +402,15 @@ class Cache(object):              logger.debug(2, "Cache is clean, not saving.")              return -        version_data = {} -        version_data['CACHE_VER'] = __cache_version__ -        version_data['BITBAKE_VER'] = bb.__version__ - -        cache_data = dict(self.depends_cache) -        for fn, info in self.depends_cache.iteritems(): -            if info.nocache: -                logger.debug(2, "Not caching %s, marked as not cacheable", fn) -                del cache_data[fn] -            elif info.pv and 'SRCREVINACTION' in info.pv: -                logger.error("Not caching %s as it had SRCREVINACTION in PV. " -                             "Please report this bug", fn) -                del cache_data[fn] - -        p = pickle.Pickler(file(self.cachefile, "wb"), -1) -        p.dump([cache_data, version_data]) +        version_data = { +            'CACHE_VER': __cache_version__, +            'BITBAKE_VER': bb.__version__, +        } + +        with open(self.cachefile, "wb") as cachefile: +            pickle.Pickler(cachefile, -1).dump([self.depends_cache, +                                                version_data]) +          del self.depends_cache      @staticmethod @@ -425,13 +418,11 @@ class Cache(object):          return bb.parse.cached_mtime_noerror(cachefile)      def add_info(self, filename, info, cacheData, parsed=None): -        self.depends_cache[filename] = info          cacheData.add_from_recipeinfo(filename, info) -        if parsed and not info.nocache: -            # The recipe was parsed, and is not marked as being -            # uncacheable, so we need to ensure that we write out the -            # new cache data. -            self.cacheclean = False +        if 'SRCREVINACTION' not in info.pv and not info.nocache: +            if parsed: +                self.cacheclean = False +            self.depends_cache[filename] = info      def add(self, file_name, data, cacheData, parsed=None):          """ | 
