On Wed, Aug 25, 2010 at 1:59 PM, Ivan Lazar Miljenovic <ivan.miljenovic@gmail.com> wrote:
On 25 August 2010 13:40, Mathew de Detrich <deteego@gmail.com> wrote:
> It is automated in a manual way =D. By that I mean that there is a script
> which autobuilds packages with cabal2arch, however that script itself has to
> be manually run. In all honesty I believe the best policy is to have base
> packages (and other 'required') be installed through the package manager of
> the distro and libraries installed through cabal. Haskell binaries then use
> cabal to check dependencies to see if the binary can be built (that is what
> I do now and I have no issues with it)

Consider these scenarios:

1) You upgrade package foo; this breaks a large number of other
packages.  How do you deal with it?
Thats what happened when I was using archlinux for libraries, nothing has broken with cabal. And if cabal somehow does break when installing libraries, I know where all the libraries are (in one folder) so its easy to fix (just delete folder, unregister packages) instead of having to do it through a package manager 

2) You upgrade GHC.  You now have to manually re-build all packages
that you had built with the previous version of GHC.
Base libraries that game with GHC I left alone (as I mentioned earlier). Packages such as parallel and array are installed by GHC and left alone 

3) You want to uninstall some Haskell packages.
Blame cabal for not having cabal uninstall =D. Also you can unregister the package through GHC (to check if it doesn't depend on anything) and delete the library folder (thats what uninstalling the aur packages does anyways, just instead of deleting the library folders the files get removed through the package manager)

4) You built a package with non-standard build options; cabal-install
keeps wanting to rebuild it with the defaults.
Havne't had this issue yet, can you be more specific (gtk for example installed fine through cabal-install, I believe thats something thats regarded as a non standard install). Remember that there is nothing stopping me from installing archlinux aur packages if for whatever reason cabal-install doesn't work, and thats highly unlikely because AUR packages are built by using runhaskell configure/build etc in the first place 

5) You don't want to wait for a package maintainer to loosen the
dependencies of a package you know works with a newer version of a
dependency.
This is also an issue in AUR, so AUR ain't any better

6) You want to install package bar; it fails to build due to some
missing C library/build tool/etc.  You have to dig around and work out
which system package contains that C library/Haskell package contains
that build tool/etc. and install that first.
I installed two packages that depend on C libraries (wx and gtk) without any issues (through cabal-install). cabal-install works with C libraries the same way it does when you do runhaskell configure/build  

Now, some future version of cabal-install may in fact solve the first
four problems by automating them and keeping track of installed
packages itself rather than relying on ghc-pkg.  It will _never_ be
able to solve the latter two (OK, it might be that someone adds
functionality to add "tweaks" to a package at configure/build/etc.
time).
I never had these problems, if there is a problem with cabal-install it will be a problem with Archlinux AUR packages, because cabal-install does configure/build in its process anyways. The only exception is binaries, and as stated before I do install them through Archlinux AUR 

Note also that if there is some trivial failure with a package not
building against a newer version of a dependency or GHC (e.g. the last
monolithic release of gtk2hs built against GHC 6.12.1 but not 6.12.2),
then in many cases it's easier and faster for the person maintaining
the distribution's packages to apply a fix than wait for upstream to
release a new version.

If you think the Arch packages for Haskell are so bad/out of date, why
not do something about that and help maintain them rather than just
whinge?