summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-07-21 10:39:26 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-08-04 16:29:15 +0100
commita78211a18231d1b02f70bde2fdad87156f69090f (patch)
tree41e571bc9ccce87915e151763fd572fd08d4728d
parented19336407ebb4740e3fa975384c85c81d424872 (diff)
downloadpoky-a78211a18231d1b02f70bde2fdad87156f69090f.tar.gz
base/reproducible: Change Source Date Epoch generation methods
In bc, we found that there are files newer than Changelog (e.g. scan.l) which means after install runs, the timestamp is clamped to SDE which means "bitbake bc -C compile" would then try and regenerate generated files and complain flex was missing. Rather than assuming Changelog/NEWS are magic for dates, drop that scan method and scan all unpacked files. This shouldn't be that slow as they'd be in the disk cache already after an unpack. For bc, this changes SDE by about two minutes and avoids the problems rebuilding. Add a version comment to the task definition as changes in python library code won't trigger a rebuild and we need one here. (From OE-Core rev: 400ed3bc77232b9d67594fa012b1278a6c8be3c6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 32dda0ad91a9e7946351c897578b4c97ae142341) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/base.bbclass1
-rw-r--r--meta/lib/oe/reproducible.py1
2 files changed, 1 insertions, 1 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 0cf27fbb91..cb9da78ab6 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -208,6 +208,7 @@ addtask do_deploy_source_date_epoch_setscene
208addtask do_deploy_source_date_epoch before do_configure after do_patch 208addtask do_deploy_source_date_epoch before do_configure after do_patch
209 209
210python create_source_date_epoch_stamp() { 210python create_source_date_epoch_stamp() {
211 # Version: 1
211 source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S')) 212 source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S'))
212 oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d) 213 oe.reproducible.epochfile_write(source_date_epoch, d.getVar('SDE_FILE'), d)
213} 214}
diff --git a/meta/lib/oe/reproducible.py b/meta/lib/oe/reproducible.py
index 35b8be6d08..2e815df190 100644
--- a/meta/lib/oe/reproducible.py
+++ b/meta/lib/oe/reproducible.py
@@ -152,7 +152,6 @@ def fixed_source_date_epoch(d):
152def get_source_date_epoch(d, sourcedir): 152def get_source_date_epoch(d, sourcedir):
153 return ( 153 return (
154 get_source_date_epoch_from_git(d, sourcedir) or 154 get_source_date_epoch_from_git(d, sourcedir) or
155 get_source_date_epoch_from_known_files(d, sourcedir) or
156 get_source_date_epoch_from_youngest_file(d, sourcedir) or 155 get_source_date_epoch_from_youngest_file(d, sourcedir) or
157 fixed_source_date_epoch(d) # Last resort 156 fixed_source_date_epoch(d) # Last resort
158 ) 157 )