threads / patch / 17971

patchInstall builtins with the user and group of the installing personality

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

## tl;dr

4 messages between Feb 23, 2009 and Feb 25, 2009. Diffs are folded; open one to read it.

replies: 3people: 3as markdown or json

Gerrit Pape· Feb 23, 2009, 15:50 UTC · lore

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 <pape@smarden.org>
---
 Makefile |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
Show changes to Makefile +1 −3
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 || \
-- 
1.6.1.3
Johannes Sixt· Feb 23, 2009, 17:00 UTC · re: Gerrit Pape · lore

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

Gerrit Pape schrieb:
Show 26 quoted lines
> 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 <pape@smarden.org>
> ---
>  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:
Show changes to Makefile +2 −3
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
Gerrit Pape· Feb 24, 2009, 08:58 UTC · re: Johannes Sixt · lore

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 initial hardlink or copy is done from the installation tree and not the build tree to fix this.

Signed-off-by: Gerrit Pape <pape@smarden.org>
---
Thanks, Johannes.
 Makefile |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Show changes to Makefile +2 −2
diff --git a/Makefile b/Makefile
index b040a96..0675c43 100644
--- a/Makefile
+++ b/Makefile
@@ -1468,8 +1468,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 || \
-- 
1.6.1.3

← back to recent threads