Re: Does Git build things during 'make install"?
Am 16.10.2017 um 10:23 schrieb Junio C Hamano: > Johannes Sixtwrites: > >> Yes, running "sudo make install" is a nightmare. sudo clears the path, >> and the git command is not found by the make invoked with root >> permissions. This changes the version string that gets compiled into >> the executable, which finally triggers a complete rebuild under >> root. Sad... > > In the meantime, would it help to intall as yourself under DESTDIR > set to where you can write into, and then limit the potential > damange done while pretending to be a privileged user to "cp -R" (or > "tar cf" in $DESTDIR piped to "tar xf" in /)? > > It appears that some dependencies are screwed up around "perl" > related things, which may want to get fixed. I agree that "make && > make install" that runs two 'make' under the same environment and > user shouldn't (re)build anything during the latter 'make', but we > somehow seem to do so. We do so only, if 'make install' does not run in the same environment and if there is no version file. I use the patch below. It works for me, but I could imagine that it suffers from the original problem if there is no git in PATH and there is no version file, i.e., when the source is not a release tarball. - 8< - Subject: [PATCH] version-gen: Use just built git if no other git is in PATH Signed-off-by: Johannes Sixt --- GIT-VERSION-GEN | 3 +++ 1 file changed, 3 insertions(+) diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 0e88e23653..b610aa3249 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -3,6 +3,9 @@ GVF=GIT-VERSION-FILE DEF_VER=v2.15.0-rc1 +# use git that was just compiled if there is no git elsewhere in PATH +PATH=$PATH:. + LF=' ' -- 2.14.2.808.g3bc32f2729
Re: Does Git build things during 'make install"?
Johannes Sixtwrites: > Yes, running "sudo make install" is a nightmare. sudo clears the path, > and the git command is not found by the make invoked with root > permissions. This changes the version string that gets compiled into > the executable, which finally triggers a complete rebuild under > root. Sad... In the meantime, would it help to intall as yourself under DESTDIR set to where you can write into, and then limit the potential damange done while pretending to be a privileged user to "cp -R" (or "tar cf" in $DESTDIR piped to "tar xf" in /)? It appears that some dependencies are screwed up around "perl" related things, which may want to get fixed. I agree that "make && make install" that runs two 'make' under the same environment and user shouldn't (re)build anything during the latter 'make', but we somehow seem to do so.
Re: Does Git build things during 'make install"?
Am 16.10.2017 um 07:05 schrieb Jeffrey Walton: My script to build Git dies during cleanup. Cleanup removes the downloaded tarball and the unpacked directory: ** Cleanup ** rm: cannot remove 'git-2.14.2/perl/blib/lib/.exists': Permission denied rm: cannot remove 'git-2.14.2/perl/blib/lib/Git/SVN/Fetcher.pm': Permission denied rm: cannot remove 'git-2.14.2/perl/blib/lib/Git/SVN/Utils.pm': Permission denied rm: cannot remove 'git-2.14.2/perl/blib/lib/Git/SVN/Ra.pm': Permission denied rm: cannot remove 'git-2.14.2/perl/blib/lib/Git/SVN/GlobSpec.pm': Permission denied ... When I look at the permissions: $ ls -Al git-2.14.2/perl/blib/lib/.exists -rw-r--r-- 1 root root 0 Oct 16 00:43 git-2.14.2/perl/blib/lib/.exists The only place in my script that does anything with privileges is 'make install' because it runs with sudo. Is Git building things in the install recipe? If so, then I don't believe that's supposed to happen. According to the GNU coding standards, Git should not be doing that. Cf; https://www.gnu.org/prep/standards/html_node/Standard-Targets.html. Yes, running "sudo make install" is a nightmare. sudo clears the path, and the git command is not found by the make invoked with root permissions. This changes the version string that gets compiled into the executable, which finally triggers a complete rebuild under root. Sad... -- Hannes