[PATCH buildbot] phase2: use full git history for reproducibility

Paul Spooren mail at aparcar.org
Fri Nov 13 02:06:03 EST 2020


The SOURCE_DATE_EPOCH variable is used to set reproducible time stamps
for built artifact. As packages get rebuild without changing, they
require individual epochs which are independent of the main tree. To
archive that the git log for each package source path is used.

This mechanism can only work if the full git history is available. Until
now only a shallow copy (--depth 1) would be cloned. With this commit
the `feeds.conf.default` is changed to use the full git repository.

Signed-off-by: Paul Spooren <mail at aparcar.org>
---
 phase2/master.cfg | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/phase2/master.cfg b/phase2/master.cfg
index 5ed7eff..6f21919 100644
--- a/phase2/master.cfg
+++ b/phase2/master.cfg
@@ -478,6 +478,13 @@ for arch in arches:
 		command = ["./ccache.sh"],
 		haltOnFailure = True))
 
+	factory.addStep(ShellCommand(
+		name = "patchfeedsconfgitfull",
+		description = "Patching feeds.conf.default to use src-git-full",
+		workdir = "build/sdk",
+		command = "sed -i -e 's#src-git #src-git-full #g' feeds.conf.default",
+		haltOnFailure = True))
+
 	if git_ssh:
 		factory.addStep(StringDownload(
 			name = "dlgitclonekey",
-- 
2.28.0




More information about the openwrt-devel mailing list