From: Mark Hatle <mark.ha...@xilinx.com>
A variable BUILD_REPRODUCIBLE_BINARIES is set to '1' by default and was used
to control if the postfuncs were added. However, it didn't actually disable
the reproducible_build (date) logic. This resulted in the program falling
back to the default date.
This change fully honors the variable and disables the various pieces
that discover and configure the SOURCE_DATE_EPOCH if the value if not
set to '1'.
Signed-off-by: Mark Hatle <mark.ha...@xilinx.com>
Signed-off-by: Mark Hatle <mark.ha...@kernel.crashing.org>
---
meta/classes/reproducible_build.bbclass | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/meta/classes/reproducible_build.bbclass
b/meta/classes/reproducible_build.bbclass
index 378121903d..a9c117c3b9 100644
--- a/meta/classes/reproducible_build.bbclass
+++ b/meta/classes/reproducible_build.bbclass
@@ -47,7 +47,9 @@ TARGET_CC_ARCH:append:class-target = " -Wdate-time"
# A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE
export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400"
-SSTATETASKS += "do_deploy_source_date_epoch"
+# The following are preformed in the anonymous python function, only if
+# BUILD_REPRODUCIBLE_BINARIES == 1
+#SSTATETASKS += "do_deploy_source_date_epoch"
do_deploy_source_date_epoch () {
mkdir -p ${SDE_DEPLOYDIR}
@@ -73,8 +75,10 @@ python do_deploy_source_date_epoch_setscene () {
do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}"
do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}"
-addtask do_deploy_source_date_epoch_setscene
-addtask do_deploy_source_date_epoch before do_configure after do_patch
+# The following are preformed in the anonymous python function, only if
+# BUILD_REPRODUCIBLE_BINARIES == 1
+#addtask do_deploy_source_date_epoch_setscene
+#addtask do_deploy_source_date_epoch before do_configure after do_patch
python create_source_date_epoch_stamp() {
import oe.reproducible
@@ -123,5 +127,12 @@ BB_HASHBASE_WHITELIST += "SOURCE_DATE_EPOCH"
python () {
if d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1':
+ # Generate the timestamp with create_source_date_epoch_stamp.
d.appendVarFlag("do_unpack", "postfuncs", "
create_source_date_epoch_stamp")
+ d.appendVar('SSTATETASKS', " do_deploy_source_date_epoch")
+ bb.build.addtask('do_deploy_source_date_epoch_setscene', None, None, d)
+ bb.build.addtask('do_deploy_source_date_epoch', 'do_configure',
'do_patch', d)
+ else:
+ # If this is set at all, the system components will attempt to use it
+ d.delVar('SOURCE_DATE_EPOCH')
}