summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/reproducible_build.bbclass11
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
93def get_source_date_epoch_value(d): 93def 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
119export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" 122export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}"