Cabal currently looks for data files to install relative to the source directory, giving the package author no possibility to move them into their own directory without cluttering up the cabal file (you end up writing things like data-files: data/foo, data/bar, data/foobar) and the source (where you'll have to include the "data/" prefix in all calls to getDataFileName).
The proposal is to add a data-dir field to the package configuration that specifies a single path which is used as a prefix for all data files in the source directory. The location of the installed files is not affected by data-dir.
Notes:
- It's impossible to change data-dir to take a list of paths without breaking the Paths_foo module interface.
- installation of data files will have to copy source files from a different location, ditto for sdist
- installed packages don't change. In particular the Paths_foo module doesn't change.