[PATCH] build: SDK/IB reproducible and faster compression
Paul Spooren
mail at aparcar.org
Thu Aug 20 21:47:04 EDT 2020
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 <mail at 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:
More information about the openwrt-devel
mailing list