On 18/02/16 00:11, Leo Famulari wrote: > On Wed, Feb 17, 2016 at 06:59:08PM +0000, Christopher Baines wrote: >> From a4d10c0c98b4b9b3df05951b9a38d37b8b1da6d3 Mon Sep 17 00:00:00 2001 >> From: Christopher Baines >> Date: Sat, 13 Feb 2016 23:49:25 +0000 >> Subject: [PATCH] gnu: Add vcsh >> >> * gnu/packages/version-control.scm (vcsh): New variable. > > [...] > >> + (propagated-inputs >> + `(("git" ,git))) > > 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] > > One problem is that the user may want to update git but not vcsh, or > vice versa. Multiple profiles would be required for the user to use > their desired version of git and vcsh. > > Since vcsh's test suite requires git, I think it should be a native > input. > > Your thoughts? > > [0] > I know that ssh is not strictly required to use rsync, whereas it seems > that vcsh cannot work without git, but bear with me. Going a bit off topic, but at what level is this dependency resolution dealt with, if at all? I am used to writing Debian packages which can depend and/or recommend sets of packages to ensure that the package functions as expected after installation. In fact I think I have been noticing this recently, as I have been gradually installing gnome related packages at random in the hope of making the installation of Gnome on my GuixSD system work better (I seem to have stumbled on the correct ones to get icons now :) ). I was guessing this was a deficiency in the package definitions, but maybe not? What you say makes some sense (I still have very little experience manipulating packages in Guix).