threads / patch / 54387

patchMakefile: use git init/add/commit/archive for dist-doc

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

## tl;dr

3 messages between Oct 10, 2020 and Oct 12, 2020. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

René Scharfe· Oct 10, 2020, 16:45 UTC · lore

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.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 Makefile | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
Show changes to Makefile +11 −4
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
René Scharfe· Oct 11, 2020, 06:14 UTC · re: René Scharfe · lore

[PATCH 2/1] Makefile: remove the unused variable TAR_DIST_EXTRA_OPTS

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 Makefile | 3 ---
 1 file changed, 3 deletions(-)
Show changes to Makefile +0 −4
diff --git a/Makefile b/Makefile
index b7f3708292..db8f07898d 100644
--- a/Makefile
+++ b/Makefile
@@ -3053,9 +3053,6 @@ quick-install-html:

 ### Maintainer's dist rules

-# Allow tweaking to hide local environment effects, like perm bits.
-# With GNU tar, "--mode=u+rwX,og+rX,og-w" would be a good idea, for example.
-TAR_DIST_EXTRA_OPTS =
 GIT_TARNAME = git-$(GIT_VERSION)
 GIT_ARCHIVE_EXTRA_FILES = \
 	--prefix=$(GIT_TARNAME)/ \
--
2.28.0
Junio C Hamano· Oct 12, 2020, 19:20 UTC · re: René Scharfe · lore

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

René Scharfe <l.s.r@web.de> 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.
Show 42 quoted lines
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
>  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

← back to recent threads