git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Feb 15, 2018, 02:14 UTC
Message-ID
<20180215021410.14045-1-szeder.dev@gmail.com>

Since commit 20d2a30f8f (Makefile: replace perl/Makefile.PL with simple make rules, 2017-12-10), the Git(3pm) man page is only generated as an indirect dependency of the 'install-doc' and 'install-man' Makefile targets. Consequently, if someone runs 'make man && sudo make install-man' (or their 'doc' counterparts), then Git(3pm) will be generated as root, and the resulting root-owned files and directories will in turn cause the next user-run 'make clean' to fail. This was not an issue in the past, because Git(3pm) was generated when 'make all' descended into 'perl/', which is usually not run as root.

List Git(3pm) as a dependency of the 'doc' and 'man' Makefile targets, too, so it gets generated by targets that are usually built as ordinary users.

While at it, add 'install-man-perl' to the list of .PHONY targets.
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 Makefile | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/Makefile b/Makefile
index 5bcd83ddf3..8d2bf4de59 100644
--- a/Makefile
+++ b/Makefile
@@ -2214,13 +2214,15 @@ $(VCSSVN_LIB): $(VCSSVN_OBJS)
 
 export DEFAULT_EDITOR DEFAULT_PAGER
 
-.PHONY: doc man html info pdf
-doc:
+.PHONY: doc man man-perl html info pdf
+doc: man-perl
 	$(MAKE) -C Documentation all
 
-man:
+man: man-perl
 	$(MAKE) -C Documentation man
 
+man-perl: perl/build/man/man3/Git.3pm
+
 html:
 	$(MAKE) -C Documentation html
 
@@ -2618,7 +2620,7 @@ endif
 	done && \
 	./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
 
-.PHONY: install-gitweb install-doc install-man install-html install-info install-pdf
+.PHONY: install-gitweb install-doc install-man install-man-perl install-html install-info install-pdf
 .PHONY: quick-install-doc quick-install-man quick-install-html
 install-gitweb:
 	$(MAKE) -C gitweb install
@@ -2629,7 +2631,7 @@ install-doc: install-man-perl
 install-man: install-man-perl
 	$(MAKE) -C Documentation install-man
 
-install-man-perl: perl/build/man/man3/Git.3pm
+install-man-perl: man-perl
 	$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mandir_SQ)/man3'
 	(cd perl/build/man/man3 && $(TAR) cf - .) | \
 	(cd '$(DESTDIR_SQ)$(mandir_SQ)/man3' && umask 022 && $(TAR) xof -)
-- 
2.16.1.354.g266d823471
Next: Ævar Arnfjörð Bjarmason
Message 1 of 3 in “Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets”
  1. Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targetsSZEDER Gábor, Feb 15, 2018
  2. Ævar Arnfjörð BjarmasonFeb 15, 2018
  3. Junio C HamanoFeb 15, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.