On 18/02/16 21:26, Leo Famulari wrote: > On Thu, Feb 18, 2016 at 09:01:00PM +0100, Andreas Enge wrote: >> On Wed, Feb 17, 2016 at 07:11:44PM -0500, Leo Famulari wrote: >>> I missed this earlier. We don't usually propagate this sort of "end-user >>> program" dependencies. For example rsync does not propagate ssh; the >>> user must install ssh. [0] >> >> I think the cleanest approach would be to patch all calls to "git" in >> the vcsh shell script by calls to "/gnu/store/xxxx-git-.../bin/git", >> where the base name is taken as "(assoc-ref %build-inputs "git")" or the like. >> >> What do you think? > > Indeed, this sounds like a clean solution. In that case, git would be a > plain input. > >> >> It might be as simple as a call in a phase to "substitute*", replacing >> "git " by the path+" ". The script is a bit annoying in that it scatters >> calls to git all over the place. It would be cleaner to define "GIT=git" >> at the start of the file, and then always call "$(GIT)". Maybe that is >> something to suggest to the upstream author? > > Since 'git' is such a short string, the possibility of "mis-patching" > when performing the string substitution seems a little too high. What do > you think? A patch could be written as Andreas describes (to use a variable), and then this could be used for Guix. Once written, the patch could also be sent to the upstream maintainer to see if they want to include it.