As friends of reproducible builds please have a look at this patch.

On 13.08.20 13:46, Paul Spooren wrote:
Both IB and SDK now use the same logic for packing.

This commit add reproducible multithread compression to the SDK and
corrects the file mtime for both. Previously all files where just copied
over from the build system, generating random mtimes.

Signed-off-by: Paul Spooren <m...@aparcar.org>
---
This speeds up SDK building on my machine by 4x.

  target/imagebuilder/Makefile | 5 ++++-
  target/sdk/Makefile          | 3 ++-
  2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile
index b463feb456..ad19ab2b53 100644
--- a/target/imagebuilder/Makefile
+++ b/target/imagebuilder/Makefile
@@ -86,7 +86,10 @@ endif
        (cd $(PKG_BUILD_DIR); find staging_dir/host/bin/ 
$(IB_LDIR)/scripts/dtc/ -type f | \
                $(XARGS) $(SCRIPT_DIR)/bundle-libraries.sh 
$(PKG_BUILD_DIR)/staging_dir/host)
        STRIP=sstrip $(SCRIPT_DIR)/rstrip.sh 
$(PKG_BUILD_DIR)/staging_dir/host/bin/
-       $(TAR) -cf - -C $(BUILD_DIR) $(IB_NAME) | xz -T$(if $(filter 
1,$(NPROC)),2,0) -zc -7e > $@
+       (cd $(BUILD_DIR); \
+               tar -I '$(STAGING_DIR_HOST)/bin/xz -7e -T$(if $(filter 
1,$(NPROC)),2,0)' -cf $@ $(IB_NAME) \
+               --mtime="$(shell date --date=@$(SOURCE_DATE_EPOCH))"; \
+       )
download:
  prepare:
diff --git a/target/sdk/Makefile b/target/sdk/Makefile
index d3552b47eb..022a791ebf 100644
--- a/target/sdk/Makefile
+++ b/target/sdk/Makefile
@@ -152,7 +152,8 @@ $(BIN_DIR)/$(SDK_NAME).tar.xz: clean
        find $(SDK_BUILD_DIR) -name CVS | $(XARGS) rm -rf
        -make -C $(SDK_BUILD_DIR)/scripts/config clean
        (cd $(BUILD_DIR); \
-               tar -I 'xz -7e' -cf $@ $(SDK_NAME); \
+               tar -I '$(STAGING_DIR_HOST)/bin/xz -7e -T$(if $(filter 
1,$(NPROC)),2,0)' -cf $@ $(SDK_NAME) \
+               --mtime="$(shell date --date=@$(SOURCE_DATE_EPOCH))"; \
        )
download:

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to