summaryrefslogtreecommitdiffstats
path: root/meta/classes/base.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-14 12:34:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-16 17:41:59 +0100
commit4b424bdfdbbe16b6e41f6cd1de75a51e3799cf94 (patch)
treef59682b14ffa5de9fef7dd62b88dddd43e3de400 /meta/classes/base.bbclass
parentf47a396964c4de76838f8c59b8226625817aa369 (diff)
downloadpoky-4b424bdfdbbe16b6e41f6cd1de75a51e3799cf94.tar.gz
reproducible: Merge code into base.bbclass
Reproducibility is here to stay and needs to be part of our default workflow. Move the remaining code to base.bbclass so it is always a first class citizen and it is clear people need to be mindful of it. (From OE-Core rev: abb0671d2cebfd7e8df94796404bbe9c7f961058) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/base.bbclass')
-rw-r--r--meta/classes/base.bbclass38
1 files changed, 38 insertions, 0 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index bca3944ae7..a65fcc6c1d 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -180,6 +180,44 @@ python base_do_unpack() {
180 bb.fatal("Bitbake Fetcher Error: " + repr(e)) 180 bb.fatal("Bitbake Fetcher Error: " + repr(e))
181} 181}
182 182
183SSTATETASKS += "do_deploy_source_date_epoch"
184
185do_deploy_source_date_epoch () {
186 mkdir -p ${SDE_DEPLOYDIR}
187 if [ -e ${SDE_FILE} ]; then
188 echo "Deploying SDE from ${SDE_FILE} -> ${SDE_DEPLOYDIR}."
189 cp -p ${SDE_FILE} ${SDE_DEPLOYDIR}/__source_date_epoch.txt
190 else
191 echo "${SDE_FILE} not found!"
192 fi
193}
194
195python do_deploy_source_date_epoch_setscene () {
196 sstate_setscene(d)
197 bb.utils.mkdirhier(d.getVar('SDE_DIR'))
198 sde_file = os.path.join(d.getVar('SDE_DEPLOYDIR'), '__source_date_epoch.txt')
199 if os.path.exists(sde_file):
200 target = d.getVar('SDE_FILE')
201 bb.debug(1, "Moving setscene SDE file %s -> %s" % (sde_file, target))
202 bb.utils.rename(sde_file, target)
203 else:
204 bb.debug(1, "%s not found!" % sde_file)
205}
206
207do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}"
208do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}"
209addtask do_deploy_source_date_epoch_setscene
210addtask do_deploy_source_date_epoch before do_configure after do_patch
211
212python create_source_date_epoch_stamp() {
213 source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S'))
214 oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d)
215}
216do_unpack[postfuncs] += "create_source_date_epoch_stamp"
217
218def get_source_date_epoch_value(d):
219 return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d)
220
183def get_layers_branch_rev(d): 221def get_layers_branch_rev(d):
184 layers = (d.getVar("BBLAYERS") or "").split() 222 layers = (d.getVar("BBLAYERS") or "").split()
185 layers_branch_rev = ["%-20s = \"%s:%s\"" % (os.path.basename(i), \ 223 layers_branch_rev = ["%-20s = \"%s:%s\"" % (os.path.basename(i), \