diff options
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 31d9f01c21..958469db62 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -720,7 +720,7 @@ def get_autorev(d): | |||
720 | d.setVar('__BB_DONT_CACHE', '1') | 720 | d.setVar('__BB_DONT_CACHE', '1') |
721 | return "AUTOINC" | 721 | return "AUTOINC" |
722 | 722 | ||
723 | def get_srcrev(d): | 723 | def get_srcrev(d, method_name='sortable_revision'): |
724 | """ | 724 | """ |
725 | Return the revsion string, usually for use in the version string (PV) of the current package | 725 | Return the revsion string, usually for use in the version string (PV) of the current package |
726 | Most packages usually only have one SCM so we just pass on the call. | 726 | Most packages usually only have one SCM so we just pass on the call. |
@@ -729,6 +729,9 @@ def get_srcrev(d): | |||
729 | 729 | ||
730 | The idea here is that we put the string "AUTOINC+" into return value if the revisions are not | 730 | The idea here is that we put the string "AUTOINC+" into return value if the revisions are not |
731 | incremental, other code is then responsible for turning that into an increasing value (if needed) | 731 | incremental, other code is then responsible for turning that into an increasing value (if needed) |
732 | |||
733 | A method_name can be supplied to retrieve an alternatively formatted revision from a fetcher, if | ||
734 | that fetcher provides a method with the given name and the same signature as sortable_revision. | ||
732 | """ | 735 | """ |
733 | 736 | ||
734 | scms = [] | 737 | scms = [] |
@@ -742,7 +745,7 @@ def get_srcrev(d): | |||
742 | raise FetchError("SRCREV was used yet no valid SCM was found in SRC_URI") | 745 | raise FetchError("SRCREV was used yet no valid SCM was found in SRC_URI") |
743 | 746 | ||
744 | if len(scms) == 1 and len(urldata[scms[0]].names) == 1: | 747 | if len(scms) == 1 and len(urldata[scms[0]].names) == 1: |
745 | autoinc, rev = urldata[scms[0]].method.sortable_revision(urldata[scms[0]], d, urldata[scms[0]].names[0]) | 748 | autoinc, rev = getattr(urldata[scms[0]].method, method_name)(urldata[scms[0]], d, urldata[scms[0]].names[0]) |
746 | if len(rev) > 10: | 749 | if len(rev) > 10: |
747 | rev = rev[:10] | 750 | rev = rev[:10] |
748 | if autoinc: | 751 | if autoinc: |
@@ -760,7 +763,7 @@ def get_srcrev(d): | |||
760 | for scm in scms: | 763 | for scm in scms: |
761 | ud = urldata[scm] | 764 | ud = urldata[scm] |
762 | for name in ud.names: | 765 | for name in ud.names: |
763 | autoinc, rev = ud.method.sortable_revision(ud, d, name) | 766 | autoinc, rev = getattr(ud.method, method_name)(ud, d, name) |
764 | seenautoinc = seenautoinc or autoinc | 767 | seenautoinc = seenautoinc or autoinc |
765 | if len(rev) > 10: | 768 | if len(rev) > 10: |
766 | rev = rev[:10] | 769 | rev = rev[:10] |