Subject: Re: [PATCH] Makefile: use git init/add/commit/archive for dist-doc

From: Junio C Hamano <[email-masked]>
Date: Mon, 12 Oct 2020 12:20:47 -0700

René Scharfe <[email-masked]> writes:

> Reduce the dependency on external tools by generating the distribution
> archives for HTML documentation and manpages using git commands instead
> of tar. This gives the archive entries the same meta data as those in
> the dist archive for binaries.

Hmph.  I vaguely recall somebody on a more exotic platform wanted
our "tar" invocations to be tweakable as their "tar" lacked options
or something like that, and hopefully pushing our build procedure in
this direction would help them.

Will queue.  Thanks.

> Signed-off-by: René Scharfe <[email-masked]>
> ---
>  Makefile | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 95571ee3fc..b7f3708292 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -3105,11 +3105,15 @@ artifacts-tar:: $(ALL_COMMANDS_TO_INSTALL) $(SCRIPT_LIB) $(OTHER_PROGRAMS) \
>  htmldocs = git-htmldocs-$(GIT_VERSION)
>  manpages = git-manpages-$(GIT_VERSION)
>  .PHONY: dist-doc distclean
> -dist-doc:
> +dist-doc: git$X
>  	$(RM) -r .doc-tmp-dir
>  	mkdir .doc-tmp-dir
>  	$(MAKE) -C Documentation WEBDOC_DEST=../.doc-tmp-dir install-webdoc
> -	cd .doc-tmp-dir && $(TAR) cf ../$(htmldocs).tar $(TAR_DIST_EXTRA_OPTS) .
> +	./git -C .doc-tmp-dir init
> +	./git -C .doc-tmp-dir add .
> +	./git -C .doc-tmp-dir commit -m htmldocs
> +	./git -C .doc-tmp-dir archive --format=tar --prefix=./ HEAD^{tree} \
> +		> $(htmldocs).tar
>  	gzip -n -9 -f $(htmldocs).tar
>  	:
>  	$(RM) -r .doc-tmp-dir
> @@ -3119,7 +3123,11 @@ dist-doc:
>  		man5dir=../.doc-tmp-dir/man5 \
>  		man7dir=../.doc-tmp-dir/man7 \
>  		install
> -	cd .doc-tmp-dir && $(TAR) cf ../$(manpages).tar $(TAR_DIST_EXTRA_OPTS) .
> +	./git -C .doc-tmp-dir init
> +	./git -C .doc-tmp-dir add .
> +	./git -C .doc-tmp-dir commit -m manpages
> +	./git -C .doc-tmp-dir archive --format=tar --prefix=./ HEAD^{tree} \
> +		> $(manpages).tar
>  	gzip -n -9 -f $(manpages).tar
>  	$(RM) -r .doc-tmp-dir
>
> --
> 2.28.0