summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py62
1 files changed, 31 insertions, 31 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index 33a8086f27..8f0ed2b9e2 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -499,30 +499,30 @@ def fetcher_init(d):
499 Calls before this must not hit the cache. 499 Calls before this must not hit the cache.
500 """ 500 """
501 501
502 revs = bb.persist_data.persist('BB_URI_HEADREVS', d) 502 with bb.persist_data.persist('BB_URI_HEADREVS', d) as revs:
503 try: 503 try:
504 # fetcher_init is called multiple times, so make sure we only save the 504 # fetcher_init is called multiple times, so make sure we only save the
505 # revs the first time it is called. 505 # revs the first time it is called.
506 if not bb.fetch2.saved_headrevs: 506 if not bb.fetch2.saved_headrevs:
507 bb.fetch2.saved_headrevs = dict(revs) 507 bb.fetch2.saved_headrevs = dict(revs)
508 except: 508 except:
509 pass 509 pass
510
511 # When to drop SCM head revisions controlled by user policy
512 srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
513 if srcrev_policy == "cache":
514 logger.debug("Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
515 elif srcrev_policy == "clear":
516 logger.debug("Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
517 revs.clear()
518 else:
519 raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
520 510
521 _checksum_cache.init_cache(d.getVar("BB_CACHEDIR")) 511 # When to drop SCM head revisions controlled by user policy
512 srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
513 if srcrev_policy == "cache":
514 logger.debug("Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
515 elif srcrev_policy == "clear":
516 logger.debug("Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
517 revs.clear()
518 else:
519 raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
520
521 _checksum_cache.init_cache(d.getVar("BB_CACHEDIR"))
522 522
523 for m in methods: 523 for m in methods:
524 if hasattr(m, "init"): 524 if hasattr(m, "init"):
525 m.init(d) 525 m.init(d)
526 526
527def fetcher_parse_save(): 527def fetcher_parse_save():
528 _checksum_cache.save_extras() 528 _checksum_cache.save_extras()
@@ -536,8 +536,8 @@ def fetcher_compare_revisions(d):
536 when bitbake was started and return true if they have changed. 536 when bitbake was started and return true if they have changed.
537 """ 537 """
538 538
539 headrevs = dict(bb.persist_data.persist('BB_URI_HEADREVS', d)) 539 with dict(bb.persist_data.persist('BB_URI_HEADREVS', d)) as headrevs:
540 return headrevs != bb.fetch2.saved_headrevs 540 return headrevs != bb.fetch2.saved_headrevs
541 541
542def mirror_from_string(data): 542def mirror_from_string(data):
543 mirrors = (data or "").replace('\\n',' ').split() 543 mirrors = (data or "").replace('\\n',' ').split()
@@ -1662,13 +1662,13 @@ class FetchMethod(object):
1662 if not hasattr(self, "_latest_revision"): 1662 if not hasattr(self, "_latest_revision"):
1663 raise ParameterError("The fetcher for this URL does not support _latest_revision", ud.url) 1663 raise ParameterError("The fetcher for this URL does not support _latest_revision", ud.url)
1664 1664
1665 revs = bb.persist_data.persist('BB_URI_HEADREVS', d) 1665 with bb.persist_data.persist('BB_URI_HEADREVS', d) as revs:
1666 key = self.generate_revision_key(ud, d, name) 1666 key = self.generate_revision_key(ud, d, name)
1667 try: 1667 try:
1668 return revs[key] 1668 return revs[key]
1669 except KeyError: 1669 except KeyError:
1670 revs[key] = rev = self._latest_revision(ud, d, name) 1670 revs[key] = rev = self._latest_revision(ud, d, name)
1671 return rev 1671 return rev
1672 1672
1673 def sortable_revision(self, ud, d, name): 1673 def sortable_revision(self, ud, d, name):
1674 latest_rev = self._build_revision(ud, d, name) 1674 latest_rev = self._build_revision(ud, d, name)