diff options
| author | Richard Purdie <richard@openedhand.com> | 2008-09-30 21:54:47 +0000 | 
|---|---|---|
| committer | Richard Purdie <richard@openedhand.com> | 2008-09-30 21:54:47 +0000 | 
| commit | 979f987c44928f2d47d319cf5fc34e7f3d2113b7 (patch) | |
| tree | b49dca768f15cc67c1fa2ff499552a2c67baa7c1 /bitbake-dev/lib | |
| parent | e2d321075a6c1aecd09a705d97f2347863a685f9 (diff) | |
| download | poky-979f987c44928f2d47d319cf5fc34e7f3d2113b7.tar.gz | |
bitbake cache.py: When SRCREV autorevisioning for a recipe is in use, don't cache the recipe. Based on work from Heikki Paajanen
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5352 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'bitbake-dev/lib')
| -rw-r--r-- | bitbake-dev/lib/bb/cache.py | 11 | ||||
| -rw-r--r-- | bitbake-dev/lib/bb/fetch/__init__.py | 2 | 
2 files changed, 12 insertions, 1 deletions
diff --git a/bitbake-dev/lib/bb/cache.py b/bitbake-dev/lib/bb/cache.py index fe38ea0aee..e0ba1de38e 100644 --- a/bitbake-dev/lib/bb/cache.py +++ b/bitbake-dev/lib/bb/cache.py  | |||
| @@ -259,6 +259,7 @@ class Cache: | |||
| 259 | Save the cache | 259 | Save the cache | 
| 260 | Called from the parser when complete (or exiting) | 260 | Called from the parser when complete (or exiting) | 
| 261 | """ | 261 | """ | 
| 262 | import copy | ||
| 262 | 263 | ||
| 263 | if not self.has_cache: | 264 | if not self.has_cache: | 
| 264 | return | 265 | return | 
| @@ -271,8 +272,14 @@ class Cache: | |||
| 271 | version_data['CACHE_VER'] = __cache_version__ | 272 | version_data['CACHE_VER'] = __cache_version__ | 
| 272 | version_data['BITBAKE_VER'] = bb.__version__ | 273 | version_data['BITBAKE_VER'] = bb.__version__ | 
| 273 | 274 | ||
| 275 | cache_data = copy.deepcopy(self.depends_cache) | ||
| 276 | for fn in self.depends_cache: | ||
| 277 | if '__BB_DONT_CACHE' in self.depends_cache[fn] and self.depends_cache[fn]['__BB_DONT_CACHE']: | ||
| 278 | bb.msg.debug(2, bb.msg.domain.Cache, "Not caching %s, marked as not cacheable" % fn) | ||
| 279 | del cache_data[fn] | ||
| 280 | |||
| 274 | p = pickle.Pickler(file(self.cachefile, "wb" ), -1 ) | 281 | p = pickle.Pickler(file(self.cachefile, "wb" ), -1 ) | 
| 275 | p.dump([self.depends_cache, version_data]) | 282 | p.dump([cache_data, version_data]) | 
| 276 | 283 | ||
| 277 | def mtime(self, cachefile): | 284 | def mtime(self, cachefile): | 
| 278 | return bb.parse.cached_mtime_noerror(cachefile) | 285 | return bb.parse.cached_mtime_noerror(cachefile) | 
| @@ -373,6 +380,8 @@ class Cache: | |||
| 373 | if not self.getVar('BROKEN', file_name, True) and not self.getVar('EXCLUDE_FROM_WORLD', file_name, True): | 380 | if not self.getVar('BROKEN', file_name, True) and not self.getVar('EXCLUDE_FROM_WORLD', file_name, True): | 
| 374 | cacheData.possible_world.append(file_name) | 381 | cacheData.possible_world.append(file_name) | 
| 375 | 382 | ||
| 383 | # Touch this to make sure its in the cache | ||
| 384 | self.getVar('__BB_DONT_CACHE', file_name, True) | ||
| 376 | 385 | ||
| 377 | def load_bbfile( self, bbfile , config): | 386 | def load_bbfile( self, bbfile , config): | 
| 378 | """ | 387 | """ | 
diff --git a/bitbake-dev/lib/bb/fetch/__init__.py b/bitbake-dev/lib/bb/fetch/__init__.py index 721eb4d646..9300d0c234 100644 --- a/bitbake-dev/lib/bb/fetch/__init__.py +++ b/bitbake-dev/lib/bb/fetch/__init__.py  | |||
| @@ -232,6 +232,8 @@ def get_srcrev(d): | |||
| 232 | bb.msg.error(bb.msg.domain.Fetcher, "SRCREV was used yet no valid SCM was found in SRC_URI") | 232 | bb.msg.error(bb.msg.domain.Fetcher, "SRCREV was used yet no valid SCM was found in SRC_URI") | 
| 233 | raise ParameterError | 233 | raise ParameterError | 
| 234 | 234 | ||
| 235 | bb.data.setVar('__BB_DONT_CACHE','1', d) | ||
| 236 | |||
| 235 | if len(scms) == 1: | 237 | if len(scms) == 1: | 
| 236 | return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d) | 238 | return urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d) | 
| 237 | 239 | ||
