Subject: Re: [PATCH] Install builtins with the user and group of the installing personality

From: Johannes Sixt <[email-masked]>
Date: Mon, 23 Feb 2009 18:00:52 +0100

Gerrit Pape schrieb:
> If 'make install' was run with sufficient privileges, then the installed
> builtins in gitexecdir, which are either hardlinked, symlinked, or copied,
> would receive the user and group of whoever built git.  With this commit the
> git-add program is installed using $(INSTALL), and subsequently linked or
> copied to the other builtins.
> 
> Signed-off-by: Gerrit Pape <[email-masked]>
> ---
>  Makefile |    4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index b040a96..7401603 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1467,9 +1467,7 @@ ifneq (,$X)
>  endif
>  	bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
>  	execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
> -	{ $(RM) "$$execdir/git-add$X" && \
> -		ln git-add$X "$$execdir/git-add$X" 2>/dev/null || \
> -		cp git-add$X "$$execdir/git-add$X"; } && \
> +	$(INSTALL) git-add$X "$$execdir" && \
>  	{ for p in $(filter-out git-add$X,$(BUILT_INS)); do \
>  		$(RM) "$$execdir/$$p" && \
>  		ln "$$execdir/git-add$X" "$$execdir/$$p" 2>/dev/null || \

I think the intent of the lines that you removed was actually this:

diff --git a/Makefile b/Makefile
index 27b9569..97087c3 100644
--- a/Makefile
+++ b/Makefile
@@ -1471,8 +1471,8 @@ endif
 	bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
 	execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
 	{ $(RM) "$$execdir/git-add$X" && \
-		ln git-add$X "$$execdir/git-add$X" 2>/dev/null || \
-		cp git-add$X "$$execdir/git-add$X"; } && \
+		ln "$$bindir/git$X" "$$execdir/git-add$X" 2>/dev/null || \
+		cp "$$bindir/git$X" "$$execdir/git-add$X"; } && \
 	{ for p in $(filter-out git-add$X,$(BUILT_INS)); do \
 		$(RM) "$$execdir/$$p" && \
 		ln "$$execdir/git-add$X" "$$execdir/$$p" 2>/dev/null || \

-- Hannes