
Andres Loeh writes:
I do not quite understand your last paragraph: You say we should not specify installation locations but then say it should be "embodied" in the library infrastructure. How do you mean that?
Let me be more concrete. The library writer provides: - library sources (.hs, .c, etc.) - documentation - meta-information about the library (the package spec for GHC, for example). The library infrastructure provides: - a build system supporting 'make install' for Unix-like systems (inc. cygwin) with any Haskell system. - tools to help you build packages for various OSs: an RPM spec file, a Windows installer, etc. That's it. No need to specify installation locations, or any procedure that must be followed by libraries to install or remove themselves. It's all supplied by the library infrastructure. There are a couple of other things that we might want to do to better support systems that don't have a good package management system: - a way to uninstall a library that was installed with 'make install'. - a way to build generic binary distributions. I view these as optional: 95% of the systems we're interested in supporting have good package management systems that we should make use of. An alternative, which some people have been suggesting, is to take on more of the tasks of a package manager (ala Python's distutils). That's fine, but IMHO we don't need to go that far. Cheers, Simon