RE: Cabal and installing packages.

On 03 December 2004 17:10, Keean Schupke wrote:
I find that even on package managed systems I use CPAN to install perl modules... I would have thought a nice central repository on haskell.org (with mirrors of course) where users can contibute their packages, that would be built into a Haskell package tool would be useful even for systems where there is package management.
I find that debian/gentoo etc do not have all the packages available for say perl, and it is nice to have a consistant interface on any platform...
I'm arguing for a consistent interface for all packages (not just Haskell) on any given platform, whereas you're arguing for a consistent interface for Haskell packages across platforms. There are advantages to both approaches of course, so ideally we'd have both. That means correctly managing interactions between the Haskell package manager (whatever that is) and the native package manager, such that you can uninstall packages in the native way, for example. We all agree what would be useful. Now it's time to write some code! Cheers, Simon

"Simon Marlow"
On 03 December 2004 17:10, Keean Schupke wrote:
I find that even on package managed systems I use CPAN to install perl modules... I would have thought a nice central repository on haskell.org (with mirrors of course) where users can contibute their packages, that would be built into a Haskell package tool would be useful even for systems where there is package management.
I find that debian/gentoo etc do not have all the packages available for say perl, and it is nice to have a consistant interface on any platform...
I'm arguing for a consistent interface for all packages (not just Haskell) on any given platform, whereas you're arguing for a consistent interface for Haskell packages across platforms.
There are advantages to both approaches of course, so ideally we'd have both.
Indeed it has always been the plan to have both: http://www.haskell.org/cabal/proposal/a818.html And the program to generate a Debian package from a Cabal package is already implemented and in use (thanks, John Goerzen!) Of course, the client isn't the hard part, the server / database is, and that's under way, but it's just a prototype now: http://www.scannedinavian.org/cgi-bin/hackage/hackage peace, isaac

Yes thats the kind of thing I was thinking... but it has a few things missing: #!/bin/sh echo "wget http://packages.haskell.org/$@" echo "tar -zxvf $@.tgz" echo "cd $@" echo "./Setup.lhs configure" echo "./Setup.lhs build" echo "./Setup.lhs install" Fetching a list of mirrors CPAN style would be useful, and having it select a default mirror by TLD would save a lot of unnecessary network traffic. Dependancy resolution is also missing (and requires recursive fetch/install), apperently Cabal includes dependancy info... so it is just a matter of reading it out of the package and doing the recursion. Also a section like gentoo's make.conf (for ebuilds) where local options can be set in a file (for things like optimisation flags etc)... I would have thought a little Haskell binary would be ideal for this... As for the server including features like listing packages and searching packages seems like a good idea... Has anyone considered using an application interface like SOAP (or something else) for the server, so that it can easily be driven from a command-line (or GUI) client - rather than just a web site? Keean. Isaac Jones wrote:
Indeed it has always been the plan to have both: http://www.haskell.org/cabal/proposal/a818.html
And the program to generate a Debian package from a Cabal package is already implemented and in use (thanks, John Goerzen!)
Of course, the client isn't the hard part, the server / database is, and that's under way, but it's just a prototype now:
http://www.scannedinavian.org/cgi-bin/hackage/hackage
peace,
isaac

Keean Schupke
Yes thats the kind of thing I was thinking... but it has a few things missing:
#!/bin/sh
echo "wget http://packages.haskell.org/$@" echo "tar -zxvf $@.tgz" echo "cd $@" echo "./Setup.lhs configure" echo "./Setup.lhs build" echo "./Setup.lhs install"
Yeah, it's just for illustration purposes.
Fetching a list of mirrors CPAN style would be useful, and having it select a default mirror by TLD would save a lot of unnecessary network traffic.
Dependancy resolution is also missing (and requires recursive fetch/install), apperently Cabal includes dependancy info... so it is just a matter of reading it out of the package and doing the recursion.
I agree. It's just a matter of someone doing it. It's somewhat dependent on how the Hackage site is laid out, so whoever decides to pick up the ball and hack on it would have to coordinate with that project. If no one else gets around to it, I'll do it once Cabal is "done".
Also a section like gentoo's make.conf (for ebuilds) where local options can be set in a file (for things like optimisation flags etc)...
I would have thought a little Haskell binary would be ideal for this...
It should definitely be written in Haskell :)
As for the server including features like listing packages and searching packages seems like a good idea... Has anyone considered using an application interface like SOAP (or something else) for the server, so that it can easily be driven from a command-line (or GUI) client - rather than just a web site?
I like this idea too :) peace, isaac
participants (3)
-
Isaac Jones
-
Keean Schupke
-
Simon Marlow