[Buildroot] [PATCH 04/34] reproducibility: make rootfs.tar reproducible
Gilles Chanteperdrix
gilles.chanteperdrix at xenomai.org
Sat Apr 30 07:49:00 UTC 2016
By generating a tarball with a deterministic file order and date.
---
fs/tar/tar.mk | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/fs/tar/tar.mk b/fs/tar/tar.mk
index 28219cf..06a4d7c 100644
--- a/fs/tar/tar.mk
+++ b/fs/tar/tar.mk
@@ -6,8 +6,19 @@
TAR_OPTS := $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS))
+ifneq ($(BR2_REPRODUCIBLE),y)
define ROOTFS_TAR_CMD
tar -c$(TAR_OPTS)f $@ --numeric-owner -C $(TARGET_DIR) .
endef
+else
+define ROOTFS_TAR_CMD
+ cd $(TARGET_DIR) && { \
+ find . -\( -! -type d -o -empty -\) -print0 | \
+ sort -z | \
+ tar --null -T - -c$(TAR_OPTS)f $@ --mtime=@$(SOURCE_DATE_EPOCH) --numeric-owner; \
+ }
+endef
+endif
+
$(eval $(call ROOTFS_TARGET,tar))
--
2.7.4
More information about the buildroot
mailing list