
On 2013-08-25 at 09:50:19 +0200, harry wrote:
Many packages have dependencies on executable packages. There are currently three ways to specify the dependency:
-Include it in the dependencies list, which will reinstall it every time. -Omit it, and the user will have to work it out when they see the Setup error message. -Some packages "cheat" by including a dummy library with the executable.
I would like to propose that cabal do simple dependency checking for executables. If it exists in the path or cabal's bin directory, then the dependency it deemed satisfied.
Are you proposing that each package listed in 'build-depends' should be looked up for its executables (if it contains any), and check if those are available as installed executable? What should happen if the executable is not found?
If it's in cabal's bin but not the path, the user should be warned.
Why only warned? Shouldn't the dependency check rather fail then, as the executable most likely won't be found? What if the executable found via $PATH differs from the one in ~/.cabal/bin (or the respective sandbox `bin` folder?); should then be warned as well?
This doesn't support version bounds, but surely it's better than the current situation. I'm assume that this has been discussed some time before, but can't find any such discussion.
cheers, hvr