On Sun, Jul 24, 2016 at 01:34:13PM +0200, David Craven wrote: > What are valid reasons to propagate inputs?
Ideally, dependencies can be found by their callers with an absolute path to /gnu/store/...-foo. But, some software lacks this facility, and can only find dependencies in the environment, for example on $PATH. So, when a user installs the calling application into their profile, propagated-inputs are installed along with it. So, with ~/.guix-profile/bin on the user's PATH, the dependencies are also on $PATH. This increases the number of potential conflicts in the profile, so we try to avoid propagating when we can. This is why I asked about the propagated-inputs in your packages. Wrappers can be used to avoid propagating in some cases. For example, the python-build-system wraps all executables with a $PYTHONPATH containing a list of absolute paths in /gnu/store. You can look at the store directory of some Python package to see the wrappers. I'll be happy if someone can correct any inaccuracies in this explanation :) It's still a bit cloudy for me.