From: sangeeta jain <sangeeta.j...@intel.com> This update will ensure that recipes are not including time stamps by creating an image with modified system time. It uses libfaketime recipe to fake system time to advance by 34308122 seconds.
Signed-off-by: sangeeta jain <sangeeta.j...@intel.com> --- meta/lib/oeqa/selftest/cases/reproducible.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index f2d9f95..1592c96 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py @@ -163,6 +163,7 @@ class ReproducibleTests(OESelftestTestCase): # will test that and also make the test run faster. If your sstate is not # reproducible, disable this in your derived test class build_from_sstate = True + use_faketime = False def setUpLocal(self): super().setUpLocal() @@ -210,7 +211,7 @@ class ReproducibleTests(OESelftestTestCase): bb.utils.mkdirhier(os.path.dirname(dest)) shutil.copyfile(source, dest) - def do_test_build(self, name, use_sstate): + def do_test_build(self, name, use_sstate, use_faketime): capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes] tmpdir = os.path.join(self.topdir, name, 'tmp') @@ -239,6 +240,18 @@ class ReproducibleTests(OESelftestTestCase): SSTATE_MIRRORS = "" ''') + if use_faketime: + # This config fragment will enable to fake system time + # advance by 34308122 sec + bitbake("libfaketime") + find_binary = "find . -path '*/image/*/libfaketime.so.1" + full_path_to_binary = runCmd(find_binary) + binary_path = full_path_to_binary.split("./") + ld_preload_path = os.path.join(os.environ.get('BUILDDIR'), binary_path[1]) + seconds_add_to_system_time = "+34308122" + cmd = 'LD_PRELOAD=%s FAKETIME=%s' %(ld_preload_path, seconds_add_to_system_time) + runCmd(cmd) + self.logger.info("Building %s (sstate%s allowed)..." % (name, '' if use_sstate else ' NOT')) self.write_config(config) d = get_bb_vars(capture_vars) @@ -265,9 +278,9 @@ class ReproducibleTests(OESelftestTestCase): os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) self.logger.info('Non-reproducible packages will be copied to %s', save_dir) - vars_A = self.do_test_build('reproducibleA', self.build_from_sstate) + vars_A = self.do_test_build('reproducibleA', self.build_from_sstate, self.use_faketime)) - vars_B = self.do_test_build('reproducibleB', False) + vars_B = self.do_test_build('reproducibleB', False, True) # NOTE: The temp directories from the reproducible build are purposely # kept after the build so it can be diffed for debugging. -- 2.7.4
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#148831): https://lists.openembedded.org/g/openembedded-core/message/148831 Mute This Topic: https://lists.openembedded.org/mt/81020687/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-