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.

Reply via email to