
Hello Tim, You may find an answer to your question in a recent blog entry (that I have posted earlier to this list [1]). For a longer (and more FreeBSD-oriented) explanation: On 03/28/10 16:30, Tim Matthews wrote:
Some of the cabal ports have there own freebsd ports but not many and the ones that are there are usually old anyway.
Yes, it is a known problem, but I am working on a new framework that will make porting and updating hackages trivial, and it is planned to be committed in a week (after the huge update commits). I am also mentoring new FreeBSD ports commiter who is actually dedicated to Haskell ports. Well, I do not see your PRs... :P At the moment 5% of all hackages is ported and 32% of them is outdated (more or less). And count a ports freeze in :D
Luckily the cabal packages on hackage work just fine and I was installing manually [..]
Great! Yesterday I was not so lucky when I wanted to install gitit via cabal-install (and I needed to patch strict-concurreny-0.2.3 and SMTPClient-1.0.1 a bit to make the things work).
because I was assuming that there was some reason why cabal-install could not be used on freebsd. Eventually I realized that this was not true and installing the packages that have lots of dependencies actually became more worthwhile as it was very tedious before.
Of course, cabal-install can be used on FreeBSD without any problems (if one does not count the problems of the hackages themselves...).
I was then using cabal with the exception of choosing the port versions if they existed as if there would be some advantage in doing so. It wasn't long before I ran into a port that didn't build (maybe because it was old) so I tried letting cabal just pull the later one from hackage.
Some people might prefer using binary packages since they do not have enough resources to (re)compile everything like when using cabal-install. Others might prefer the possibility to be able to remove these packages as well. And a few ones prefer when everything just works out-of-the-box (i.e. well-tested), without further hacking.
This built just fine. I shall probably remove the other freebsd haskell ports from my system and replace with updated hackage ones.
You are free to do it, no hard feelings :)
What's the point of all this? I think if freebsd only had ports for the basic stuff like haskell platform and other compilers then it could potentially make it easier for the devs/testers to finally get the updated ghc 6.12.1 version in the main tree.
Your proposal sounds reasonable. My plans regarding addressing these problems are as follows: - Introduce a new framework for hackage ports (enables faster updating). - Introduce an automatic hackage to port converter using the new framework (enables faster porting). - Add a port for Haskell Platform that conflicts with lang/ghc and all hs-* ports, so everybody may use cabal-install instead of FreeBSD ports. Yay! - Update lang/ghc to GHC 6.12.x, if all the (sup)ported hackages build with it correctly. - Introduce a lang/ghc-devel port for upcoming (but not yet completely supported) GHC releases, so developers and testers may work with it.
Sorry if this sounds harsh but it seems like the current setup is stale, messy and inconsistent which could be trimmed down, maintained + cabal is a package that really does need to be in the ports but currently isn't so.
Thank you for your comments. Cheers, :g [1] http://www.haskell.org/pipermail/freebsd-haskell/2010-March/000172.html