diff options
Diffstat (limited to 'meta')
-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 f06e00d70d..43cf9dc894 100644 --- a/meta/classes/reproducible_build.bbclass +++ b/meta/classes/reproducible_build.bbclass | |||
@@ -91,11 +91,14 @@ python create_source_date_epoch_stamp() { | |||
91 | } | 91 | } |
92 | 92 | ||
93 | def get_source_date_epoch_value(d): | 93 | def get_source_date_epoch_value(d): |
94 | cached = d.getVar('__CACHED_SOURCE_DATE_EPOCH') | 94 | epochfile = d.getVar('SDE_FILE') |
95 | if cached: | 95 | cached, efile = d.getVar('__CACHED_SOURCE_DATE_EPOCH') or (None, None) |
96 | if cached and efile == epochfile: | ||
96 | return cached | 97 | return cached |
97 | 98 | ||
98 | epochfile = d.getVar('SDE_FILE') | 99 | if cached and epochfile != efile: |
100 | bb.debug(1, "Epoch file changed from %s to %s" % (efile, epochfile)) | ||
101 | |||
99 | source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) | 102 | source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK')) |
100 | if os.path.isfile(epochfile): | 103 | if os.path.isfile(epochfile): |
101 | with open(epochfile, 'r') as f: | 104 | with open(epochfile, 'r') as f: |
@@ -113,7 +116,7 @@ def get_source_date_epoch_value(d): | |||
113 | else: | 116 | else: |
114 | bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) | 117 | bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch)) |
115 | 118 | ||
116 | d.setVar('__CACHED_SOURCE_DATE_EPOCH', str(source_date_epoch)) | 119 | d.setVar('__CACHED_SOURCE_DATE_EPOCH', (str(source_date_epoch), epochfile)) |
117 | return str(source_date_epoch) | 120 | return str(source_date_epoch) |
118 | 121 | ||
119 | export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" | 122 | export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" |