diff options
| -rw-r--r-- | meta/classes/reproducible_build.bbclass | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/meta/classes/reproducible_build.bbclass b/meta/classes/reproducible_build.bbclass index 1277764fab..62655c2a5b 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass | |||
| @@ -90,11 +90,14 @@ python create_source_date_epoch_stamp() { | |||
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | def get_source_date_epoch_value(d): | 92 | def get_source_date_epoch_value(d): |
| 93 | cached = d.getVar('__CACHED_SOURCE_DATE_EPOCH') | 93 | epochfile = d.getVar('SDE_FILE') |
| 94 | if cached: | 94 | cached, efile = d.getVar('__CACHED_SOURCE_DATE_EPOCH') or (None, None) |
| 95 | if cached and efile == epochfile: | ||
| 95 | return cached | 96 | return cached |
| 96 | 97 | ||
| 97 | epochfile = d.getVar('SDE_FILE') | 98 | if cached and epochfile != efile: |
| 99 | bb.debug(1, "Epoch file changed from %s to %s" % (efile, epochfile)) | ||
| 100 | |||
| 98 | source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) | 101 | source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) |
| 99 | try: | 102 | try: |
| 100 | with open(epochfile, 'r') as f: | 103 | with open(epochfile, 'r') as f: |
| @@ -112,7 +115,7 @@ def get_source_date_epoch_value(d): | |||
| 112 | except FileNotFoundError: | 115 | except FileNotFoundError: |
| 113 | bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) | 116 | bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) |
| 114 | 117 | ||
| 115 | d.setVar('__CACHED_SOURCE_DATE_EPOCH', str(source_date_epoch)) | 118 | d.setVar('__CACHED_SOURCE_DATE_EPOCH', (str(source_date_epoch), epochfile)) |
| 116 | return str(source_date_epoch) | 119 | return str(source_date_epoch) |
| 117 | 120 | ||
| 118 | export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" | 121 | export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" |
