From: Junio C Hamano Date: Wed, 17 May 2006 09:22:32 GMT Subject: Re: Git 1.3.2 on Solaris Message-ID: <7v7j4lhup3.fsf@assigned-by-dhcp.cox.net> In-Reply-To: "Stefan Pfetzing" writes: > Hm, gitexecdir is also the path where git is installed, right? So if I'd > install git with pkgsrc it will be /usr/pkg/bin, right? - If so, > putting symlinks > there _will_ break pkgsrc. If you look at our Makefile, you will see bindir does not have to be gitexecdir. The suggestion by Linus is that you set bindir to /usr/local/bin or whereever your distribution's packaging scheme wants the locally installed software to be that is on user's PATH, and gitexecdir to /usr/local/libexec/git (again, whereever), _and_ have: ln -s /usr/bin/gtr /usr/local/libexec/git/tr ln -s /usr/bin/gxargs /usr/local/libexec/git/xargs ... Then: (1) git and gitk are available in /usr/local/bin; (2) while git and gitk runs, /usr/local/libexec/git will be prepended to the PATH, so when they want xargs, they will get gxargs; (3) but your users will _not_ have /usr/local/libexec/git on their PATH, so when they type xargs they will get the one that barfs on -0 option. and train your users and user's scripts to use the officially sanctioned way to refer to git subprograms. From interactive sessions, say "git foo", not "git-foo". If your script _really_ cares about extra exec git wrapper does, use "git --exec-path" upfront in the script to obtain correct gitexecpath, export GIT_EXEC_PATH environment variable with that value, and prepend it to PATH so that it can find "git-foo" executable (you would probably need to do both, so that git-foo can find git-bar and its friends).