
Ok, I think the title of my mail is misleading, and the PKGBUILD too :) On Mon, Mar 29, 2010 at 07:47:32AM -0700, Don Stewart wrote:
Hmm. But you might be duplicating work, since I already have a tool to do this :)
Are you referring to cabal2arch ? if it is the case, I am aware of its existence, and how it is used to submit pkgbuilds on AUR, but can it handle the haskell-platform ? Right now, the HP needs alex=2.3.2 but only alex=2.3.1 is available in community. Same goes for haddock=2.7.2 required, but haddock=2.6.0 given by ghc or the AUR package. (I find this one extra weird - if the new HP is based on ghc-6.12.1, why does it ask for haddock-2.7.2 rather than 2.6.0 ?). I might be wrong, but the HP's cabalized version looks like a meta-package calling for the installation of a list of dependencies. And we all know it doesn't translate well to Arch because of three reasons: - one version of a package on a system, - one version of a package on the official repositories, - one version of the pkgbuild on the AUR. For these reasons, I was wondering if a haskell-platform package bundling everything with the right version, depending only on ghc would be the way to go. Then, the bleeding-edge stuff could be handled separately within the AUR, thanks to the cabal2arch automatization process. Anyway, maybe I'm just the master of the obvious - and if so, please tell me ! Thomas
girodt:
Hi people.
yesterday I tried to write a PKGBUILD for the haskell-platform. it looks like this (work in progress):
----
pkgname=haskell-platform pkgver=2010.1.0.0 pkgrel=1 pkgdesc="the haskell platform" arch=('i686' 'x86_64') url="http://hackage.haskell.org/platform/" license=('BSD') groups=() depends=('ghc>=6.12.1') makedepends=() optdepends=() provides=('cabal-install=0.8.0' 'alex=2.3.2' 'happy=1.18.4' 'haddock=2.7.2' 'haskell-cgi=3001.1.7.2' 'haskell-fgl=5.4.2.2' 'haskell-glut=2.1.2.1' 'haskell-haskell-src=1.0.1.3' 'haskell-html=1.0.1.2' 'haskell-hunit=1.2.2.1' 'haskell-mtl=1.1.0.2' 'haskell-network=2.2.1.7' 'haskell-opengl=2.2.3.0' 'haskell-parallel=2.2.0.1' 'haskell-parsec=2.1.0.1' 'haskell-quickcheck=2.1.0.3' 'haskell-regex-base=0.93.1' 'haskell-regex-compat=0.92' 'haskell-regex-posix=0.94.1' 'haskell-stm=2.1.1.2' 'haskell-xhtml=3000.2.0.1' 'haskell-zlib=0.5.2.0' 'haskell-http=4000.0.9' 'haskell-deepseq=1.1.0.0') conflicts=() replaces=() backup=() options=() install= source=(http://hackage.haskell.org/platform/$pkgver/$pkgname-$pkgver.tar.gz) noextract=() md5sums=('ad96a12535b955f2f5e11769b02e0f76')
build() { cd "$srcdir/$pkgname-$pkgver"
./configure --prefix=/usr make || return 1 make DESTDIR="$pkgdir/" install }
----
as you can see, it is supposed to build *all* the platform in one bundle, and it uses the "provides" field to list all the packages offered by the platform, rather than building its content through dependencies.
If one wants to have the platform version and the bleeding edge of a package, it might be problematic. A possible solution could be to use a different naming scheme for non-platform versions, like using the prefix "hackage-" rather than "haskell-" for example.
Well I guess there are reasons for not using this approach already, and I'm not seeing them. If it is the case, I would be glad to hear them.
----
note : the above script doesn't work, for sure I did some stuff wrong. Maybe it could be better to use the cabalized version of the haskell-platform and then declare cabal-install, alex, happy and haddock as external dependencies - but then if any of those gets pushed ahead of the platform, it *will* cause troubles.
Tom _______________________________________________ arch-haskell mailing list arch-haskell@haskell.org http://www.haskell.org/mailman/listinfo/arch-haskell