diff options
Diffstat (limited to 'bitbake/lib/bb/fetch2/__init__.py')
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 16cf1fa2be..b9cca91684 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
| @@ -358,7 +358,8 @@ def localpaths(d): | |||
| 358 | 358 | ||
| 359 | return local | 359 | return local |
| 360 | 360 | ||
| 361 | srcrev_internal_call = False | 361 | def get_autorev(d): |
| 362 | return "AUTOINC" | ||
| 362 | 363 | ||
| 363 | def get_srcrev(d): | 364 | def get_srcrev(d): |
| 364 | """ | 365 | """ |
| @@ -369,18 +370,6 @@ def get_srcrev(d): | |||
| 369 | have been set. | 370 | have been set. |
| 370 | """ | 371 | """ |
| 371 | 372 | ||
| 372 | # | ||
| 373 | # Ugly code alert. localpath in the fetchers will try to evaluate SRCREV which | ||
| 374 | # could translate into a call to here. If it does, we need to catch this | ||
| 375 | # and provide some way so it knows get_srcrev is active instead of being | ||
| 376 | # some number etc. hence the srcrev_internal_call tracking and the magic | ||
| 377 | # "SRCREVINACTION" return value. | ||
| 378 | # | ||
| 379 | # Neater solutions welcome! | ||
| 380 | # | ||
| 381 | if bb.fetch2.srcrev_internal_call: | ||
| 382 | return "SRCREVINACTION" | ||
| 383 | |||
| 384 | scms = [] | 373 | scms = [] |
| 385 | 374 | ||
| 386 | # Only call setup_localpath on URIs which supports_srcrev() | 375 | # Only call setup_localpath on URIs which supports_srcrev() |
| @@ -548,6 +537,8 @@ class FetchData(object): | |||
| 548 | self.method = m | 537 | self.method = m |
| 549 | if hasattr(m,"urldata_init"): | 538 | if hasattr(m,"urldata_init"): |
| 550 | m.urldata_init(self, d) | 539 | m.urldata_init(self, d) |
| 540 | if m.supports_srcrev(): | ||
| 541 | self.revision = Fetch.srcrev_internal_helper(self, d); | ||
| 551 | return | 542 | return |
| 552 | raise NoMethodError("Missing implementation for url %s" % url) | 543 | raise NoMethodError("Missing implementation for url %s" % url) |
| 553 | 544 | ||
| @@ -572,11 +563,7 @@ class FetchData(object): | |||
| 572 | local = "" | 563 | local = "" |
| 573 | self.localpath = local | 564 | self.localpath = local |
| 574 | if not local: | 565 | if not local: |
| 575 | try: | 566 | self.localpath = self.method.localpath(self.url, self, d) |
| 576 | bb.fetch2.srcrev_internal_call = True | ||
| 577 | self.localpath = self.method.localpath(self.url, self, d) | ||
| 578 | finally: | ||
| 579 | bb.fetch2.srcrev_internal_call = False | ||
| 580 | # We have to clear data's internal caches since the cached value of SRCREV is now wrong. | 567 | # We have to clear data's internal caches since the cached value of SRCREV is now wrong. |
| 581 | # Horrible... | 568 | # Horrible... |
| 582 | bb.data.delVar("ISHOULDNEVEREXIST", d) | 569 | bb.data.delVar("ISHOULDNEVEREXIST", d) |
| @@ -682,8 +669,8 @@ class Fetch(object): | |||
| 682 | """ | 669 | """ |
| 683 | Return: | 670 | Return: |
| 684 | a) a source revision if specified | 671 | a) a source revision if specified |
| 685 | b) True if auto srcrev is in action | 672 | b) latest revision if SREREV="AUTOINC" |
| 686 | c) False otherwise | 673 | c) None if not specified |
| 687 | """ | 674 | """ |
| 688 | 675 | ||
| 689 | if 'rev' in ud.parm: | 676 | if 'rev' in ud.parm: |
| @@ -704,10 +691,9 @@ class Fetch(object): | |||
| 704 | rev = data.getVar("SRCREV", d, 1) | 691 | rev = data.getVar("SRCREV", d, 1) |
| 705 | if rev == "INVALID": | 692 | if rev == "INVALID": |
| 706 | raise InvalidSRCREV("Please set SRCREV to a valid value") | 693 | raise InvalidSRCREV("Please set SRCREV to a valid value") |
| 707 | if not rev: | 694 | if rev == "AUTOINC": |
| 708 | return False | 695 | rev = ud.method.latest_revision(ud.url, ud, d) |
| 709 | if rev is "SRCREVINACTION": | 696 | |
| 710 | return True | ||
| 711 | return rev | 697 | return rev |
| 712 | 698 | ||
| 713 | srcrev_internal_helper = staticmethod(srcrev_internal_helper) | 699 | srcrev_internal_helper = staticmethod(srcrev_internal_helper) |
