[arch-haskell] packaging the haskell platform: another shot

Thomas Girod girodt at gmail.com
Mon Mar 29 11:21:11 EDT 2010


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 at haskell.org
> > http://www.haskell.org/mailman/listinfo/arch-haskell


More information about the arch-haskell mailing list