
No, wait, there's cabal-install. And it doesn't even depend on 20+ packages I'd have to install manually. My day, for now, is saved, at least if portage installs it without hesitation. Ah, there it is: >>> Compiling source >>> in /var/tmp/portage/dev-haskell/cabal-darcs-0/work/cabal-darcs-0 ... * Bootstrapping Cabal...: can't find file: Setup.lhs * * ERROR: dev-haskell/cabal-darcs-0 failed. Ok, let's try it the other way 'round...: % wget \ http://hackage.haskell.org/packages/archive/cabal-install/0.4.0/cabal-install-0.4.0.tar.gz % tar xvzf cabal-install-0.4.0.tar.gz % cd cabal-install-0.4.0 % runhaskell Setup.lhs configure --prefix=/home/ksf/cabal-inst --user Configuring cabal-install-0.4.0... % runhaskell Setup.lhs install Installing: /home/ksf/cabal-inst/bin Setup.lhs: dist/build/cabal/cabal: copyFile: does not exist (No such file or directory) % runhaskell Setup.lhs build Preprocessing executables for cabal-install-0.4.0... Building cabal-install-0.4.0... [...] % runhaskell Setup.lhs install Installing: /home/ksf/cabal-inst/bin % cabal update % cabal install phooey [...] type 'make' to build wxhaskell. type 'make install' to install wxhaskell. type 'make help' to receive help on all other make targets Configure Succeeded. Indeed. It succeeded. Now what? Building and installing by hand, it seems. Building works, installing too, but registering fails: the Makefile does not seem to like --user: % runhaskell Setup.lhs register --user -=-= Cabal executing: make register=-=- cat config/wxcore.pkg | sed -e "s|\${wxhlibdir}|/home/ksf/cabal-inst/lib|" | ghc-pkg update - Reading package info from stdin ... done. WARNING: unversioned dependencies are deprecated, and will NOT be accepted by GHC 6.10: base haskell98 Unable to rename "/usr/lib64/ghc-6.8.2/package.conf" to "/usr/lib64/ghc-6.8.2/package.conf.old" Saving old package config file... ghc-pkg.bin: /usr/lib64/ghc-6.8.2/package.conf: renameFile: permission denied (Permission denied) Just a second... # emerge wxhaskell -pv These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild UD] dev-lang/ghc-6.4.2 [6.8.2] USE="X%* doc opengl%* -binary -ghcbootstrap -openal% -test%(-bash-completion%)" 0 kB [0=>1] [ebuild N ] dev-haskell/wxhaskell-0.9.4 USE="doc" 0 kB In other words: No way. The only program that touches anything in /usr/ is portage. Well, at least ghc-pkg update works on a mangled wxcore.pkg. Rationale: We need a CPAN, a cabal that is smart enough to know what to to, even if building depends on make, grapefruit authors that commit to hackage, a cabal-inst that can install from darcs (or at least from a local directory), or maybe just a make-replacement for haskell, like java has with ant (which is really cool if you successfully do not notice the xml-syntax). I would already shut up if there were an ebuild generator, but then I'm not that egoistic ;) Anyway, three hours after wanting to try it out, grapefruit is up and running, and I did not even have to install its dependencies by hand. It seems like grapefruit could benefit from nestable cabal packages, though: It has one big script that installs many packages. You could also call them dependencies. I'm going to shut up now. -- (c) this sig last receiving data processing entity. Inspect headers for past copyright information. All rights reserved. Unauthorised copying, hiring, renting, public performance and/or broadcasting of this signature prohibited.

Hi
Rationale: We need a CPAN
We choose to spell CPAN as "Hackage"
, a cabal that is smart enough to know what to to, even if building depends on make
Why should building depend on make? Shouldn't cabal build stuff for us? We need a cabal that is clever enough that we don't need a make.
, grapefruit authors that commit to hackage
Or someone to help show the grapefruit authors the light. I helped put smallcheck on hackage, others have done other packages. Perhaps you could do grapefruit?
, a cabal-inst that can install from darcs (or at least from a local directory)
Yes, that would be lovely!
, or maybe just a make-replacement for haskell, like java has with ant (which is really cool if you successfully do not notice the xml-syntax).
We have replaced a lot of make with just --make in GHC. Cabal replaces more. What more bits of make do you need? If you can say why make is still necessary, people may be able to eliminate it. Thanks Neil

On Thu, May 29, 2008 at 11:47 AM, Neil Mitchell
, a cabal-inst that can install from darcs (or at least from a local directory)
Yes, that would be lovely!
While we're on the subject, why does searchpath get as little attention as it does? It seems to work reasonably well for HAppS. -- Darrin

I've been playing a lot with searchpath lately, for doing happs
"quickstart" installation as described on happs.org.
Searchpath works great when it works, which usually means -- when the
module map file is up to date and pointing everywhere to the right
place.
When the module map file is out of date though, the error messages for
missing dependencies that you would get from searchpath are not as
good as the error messages you'd get from a cabal configure.
Case in point, from #happs irc chat today
18:09:44 <thomahartman1> ~/MyProject>sp ghc -isrc src/Main.hs --make --run ....
18:10:16 <Lemmih> ?
18:10:19 <thomahartman1> /home/thartman/.SearchPath/HAppS/State/Spread.hs:18:17:
18:10:20 <thomahartman1> Could not find module
`Control.Concurrent.Chan.Closeable':
18:10:20 <thomahartman1> Use -v to see a list of the files searched for.
18:10:30 <thomahartman1> something need to be pushed?
18:10:30 <Lemmih> Install hspread.
18:11:06 <Lemmih> Cabal tells you these sorts of things.
18:11:19 <Lemmih> sp doesn't really keep track of dependencies.
thomas.
2008/5/29 Darrin Thompson
On Thu, May 29, 2008 at 11:47 AM, Neil Mitchell
wrote: , a cabal-inst that can install from darcs (or at least from a local directory)
Yes, that would be lovely!
While we're on the subject, why does searchpath get as little attention as it does? It seems to work reasonably well for HAppS.
-- Darrin _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Thu, May 29, 2008 at 4:31 PM, Thomas Hartman
I've been playing a lot with searchpath lately, for doing happs "quickstart" installation as described on happs.org.
Searchpath works great when it works, which usually means -- when the module map file is up to date and pointing everywhere to the right place.
When the module map file is out of date though, the error messages for missing dependencies that you would get from searchpath are not as good as the error messages you'd get from a cabal configure.
Makes me wonder if searchpath and a good module map file wouldn't be a good way to bootstrap cabal-install. -- Darrin

And who bootstraps the searchpath?
--S
On Thu, May 29, 2008 at 4:50 PM, Darrin Thompson
On Thu, May 29, 2008 at 4:31 PM, Thomas Hartman
wrote: I've been playing a lot with searchpath lately, for doing happs "quickstart" installation as described on happs.org.
Searchpath works great when it works, which usually means -- when the module map file is up to date and pointing everywhere to the right place.
When the module map file is out of date though, the error messages for missing dependencies that you would get from searchpath are not as good as the error messages you'd get from a cabal configure.
Makes me wonder if searchpath and a good module map file wouldn't be a good way to bootstrap cabal-install.
-- Darrin _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Neil Mitchell
Hi
Rationale: We need a CPAN
We choose to spell CPAN as "Hackage"
, a cabal that is smart enough to know what to to, even if building depends on make
Why should building depend on make? Shouldn't cabal build stuff for us? We need a cabal that is clever enough that we don't need a make.
, grapefruit authors that commit to hackage
Or someone to help show the grapefruit authors the light. I helped put smallcheck on hackage, others have done other packages. Perhaps you could do grapefruit?
, a cabal-inst that can install from darcs (or at least from a local directory)
Yes, that would be lovely!
, or maybe just a make-replacement for haskell, like java has with ant (which is really cool if you successfully do not notice the xml-syntax).
We have replaced a lot of make with just --make in GHC. Cabal replaces more. What more bits of make do you need? If you can say why make is still necessary, people may be able to eliminate it.
Thanks
Neil _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Hackage and Cabal are nice, but a command line tool for automatically searching Hackage and installing Hackage packages (like the cpan program, or easy_install) would be nice. Unless I haven't done my homework and this tool exists... Thanks, Rob

Hello Rob,
On Thu, May 29, 2008 at 12:05 PM, Rob Hoelz
Neil Mitchell
wrote: Hi
Rationale: We need a CPAN
We choose to spell CPAN as "Hackage"
, a cabal that is smart enough to know what to to, even if building depends on make
Why should building depend on make? Shouldn't cabal build stuff for us? We need a cabal that is clever enough that we don't need a make.
, grapefruit authors that commit to hackage
Or someone to help show the grapefruit authors the light. I helped put smallcheck on hackage, others have done other packages. Perhaps you could do grapefruit?
, a cabal-inst that can install from darcs (or at least from a local directory)
Yes, that would be lovely!
, or maybe just a make-replacement for haskell, like java has with ant (which is really cool if you successfully do not notice the xml-syntax).
We have replaced a lot of make with just --make in GHC. Cabal replaces more. What more bits of make do you need? If you can say why make is still necessary, people may be able to eliminate it.
Thanks
Neil _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Hackage and Cabal are nice, but a command line tool for automatically searching Hackage and installing Hackage packages (like the cpan program, or easy_install) would be nice. Unless I haven't done my homework and this tool exists...
Thanks, Rob
Try this: cabal update cabal list <pattern> cabal install For example, cabal update -- updates your list of packages cabal list xml -- searches the list of packages matching the pattern xml cabal install HaXml -- will download and install the package. Is that what you were wanting? :) __ Donnie

Hackage and Cabal are nice, but a command line tool for automatically searching Hackage and installing Hackage packages (like the cpan program, or easy_install) would be nice. Unless I haven't done my homework and this tool exists...
This tool exists. It is called 'cabal-install'. To try out one of today's new packages: $ cabal update Downloading package list from server 'http://hackage.haskell.org/packages/archive' $ cabal install category-extras Downloading 'category-extras-0.52.1'... Configuring category-extras-0.52.1... Preprocessing library category-extras-0.52.1... Building category-extras-0.52.1... /usr/bin/ar: creating dist/build/libHScategory-extras-0.52.1.a Installing: /home/dons/.cabal/lib/category-extras-0.52.1/ghc-6.8.2 Registering category-extras-0.52.1... Done.

On 29 maj 2008, at 18.13, Don Stewart wrote:
Hackage and Cabal are nice, but a command line tool for automatically searching Hackage and installing Hackage packages (like the cpan program, or easy_install) would be nice. Unless I haven't done my homework and this tool exists...
This tool exists. It is called 'cabal-install'. To try out one of today's new packages:
$ cabal update $ cabal install category-extras
Another nice feature: Say you want to hack on the darcs version of a project, but you need to install the dependencies. If the project is Cabalised you can build and install the darcs version as well as all dependencies by calling 'cabal install' with no arguments inside the project directory. $ darcs get <project> $ cd <project> $ cabal install / Thomas -- Push the envelope. Watch it bend.

Am Donnerstag, 29. Mai 2008 17:47 schrieb Neil Mitchell:
[…]
grapefruit authors that commit to hackage
Or someone to help show the grapefruit authors the light. I helped put smallcheck on hackage, others have done other packages. Perhaps you could do grapefruit?
What do you mean with showing us the light? It’s not that I wouldn’t know how to do releases on Hackage. I’ve already did this for the lax package. It’s that we didn’t want to release yet because of Grapefruit’s inmaturity. Anyway, thanks for motivating people to help. :-)
[…]
Best wishes, Wolfgang

On Thu, 2008-05-29 at 17:38 +0200, Achim Schneider wrote: > No, wait, there's cabal-install. And it doesn't even depend on 20+ > packages I'd have to install manually. My day, for now, is saved, at > least if portage installs it without hesitation. > > Ah, there it is: > >>> Compiling source > >>> in /var/tmp/portage/dev-haskell/cabal-darcs-0/work/cabal-darcs-0 ... > * Bootstrapping Cabal... > >: can't find file: Setup.lhs > * > * ERROR: dev-haskell/cabal-darcs-0 failed. The ebuild for the darcs version of Cabal it out of date. This happens frequently with *-darcs ebuilds because upstream changes. > http://hackage.haskell.org/packages/archive/cabal-install/0.4.0/cabal-install-0.4.0.tar.gz This version is unfortunately far far too old. I cannot upload a new version to hackage until I release Cabal-1.4 which it depends on. Fortunately I'll be releasing both soonish and in the mean time you can try the darcs versions or the pre-release tarballs from a few weeks ago. > Building works, installing too, but registering fails: the Makefile > does not seem to like --user: > > % runhaskell Setup.lhs register --user > -=-= Cabal executing: make register=-=- > cat config/wxcore.pkg | sed -e > "s|\${wxhlibdir}|/home/ksf/cabal-inst/lib|" | ghc-pkg update - Reading > package info from stdin ... done. WARNING: unversioned dependencies are > deprecated, and will NOT be accepted by GHC 6.10: base haskell98 Unable > to rename "/usr/lib64/ghc-6.8.2/package.conf" to > "/usr/lib64/ghc-6.8.2/package.conf.old" Saving old package config > file... ghc-pkg.bin: /usr/lib64/ghc-6.8.2/package.conf: renameFile: > permission denied (Permission denied) The wx package seems to be broken. It is registering directly with ghc-pkg and not respecting the --user flag. This is because it uses make rather than the build infrastructure that Cabal provides. Not that I can blame it for that, it's a pretty complex package and Cabal doesn't yet provide all the features it needs. Gtk2Hs is not cabalised yet either. > Just a second... > # emerge wxhaskell -pv > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > [ebuild UD] dev-lang/ghc-6.4.2 [6.8.2] USE="X%* doc opengl%* > -binary -ghcbootstrap -openal% -test%(-bash-completion%)" 0 kB [0=>1] > [ebuild N ] dev-haskell/wxhaskell-0.9.4 USE="doc" 0 kB > > > In other words: No way. The only program that touches anything in /usr/ > is portage. It's trying to downgrade ghc because the version of wxhaskell in portage only works with ghc-6.4.2 and not 6.6 or 6.8. > Rationale: We need a CPAN, a cabal that is smart enough to know what to > to, even if building depends on make, grapefruit authors that commit > to hackage, a cabal-inst that can install from darcs (or at least from > a local directory) It can build from a local directory. Being able to build from darcs is possible in principle but we've not implemented it yet. > , or maybe just a make-replacement for haskell, like > java has with ant (which is really cool if you successfully do not > notice the xml-syntax). We're doing something like that as a Google Summer of Code project this summer. > I would already shut up if there were an ebuild generator, but then I'm > not that egoistic ;) There is. It's called hackport. We use it to generate most of the 100's of Haskell ebuilds that you find in the haskell overlay. So I fully appreciate this packaging stuff is sometimes frustrating. I hope you appreciate that it is actually improving. BTW, if you have specific bugs to report in Cabal, cabal-install or hackage (ie hackage itself, not problems with packages in hackage) then please do report them in our bug tracker: http://hackage.haskell.org/trac/hackage/ You'll also find links there to the darcs versions of Cabal and cabal-install if you want to play with them. Duncan

Duncan Coutts
So I fully appreciate this packaging stuff is sometimes frustrating. I hope you appreciate that it is actually improving.
I already was pleasantly surprised when discovering cabal-install, I think it deserves some more prominence, or even integration into cabal itself, to make everyone aware of the fact that there's such a thing as automatic installation and tempt people to make it work. CPAN, of course, makes its life a lot easier by not caring about outside dependencies at all: You can install GTK bindings without having GTK installed... which of course does not work with Haskell, as things must be linked properly. -- (c) this sig last receiving data processing entity. Inspect headers for past copyright information. All rights reserved. Unauthorised copying, hiring, renting, public performance and/or broadcasting of this signature prohibited.

2008/5/30 Achim Schneider
I already was pleasantly surprised when discovering cabal-install, I think it deserves some more prominence, or even integration into cabal itself, to make everyone aware of the fact that there's such a thing as automatic installation and tempt people to make it work.
I completely agree, cabal-install is very nice, and should be more widely known.
CPAN, of course, makes its life a lot easier by not caring about outside dependencies at all: You can install GTK bindings without having GTK installed... which of course does not work with Haskell, as things must be linked properly.
Not true : GTK bindings have a C part which needs to be properly linked as well, you can't install them without GTK on your computer. On the other hand, CPAN and the make-like tools in Perl are much more mature and have more functionality than Cabal now (and they're a bit of a mess too...) and there is often a external dependancies downloader and installer integrated in packages. Another truly important difference between CPAN and cabal-install is the importance of the testing suite, all CPAN tools are geared so that by default nothing is installed if it doesn't pass its test and there's always a good number of tests. (So even when external dependancies don't prevent the module from being build, it won't install without forcing it) -- Jedaï

On Fri, 2008-05-30 at 16:33 +0200, Chaddaï Fouché wrote:
2008/5/30 Achim Schneider
: I already was pleasantly surprised when discovering cabal-install, I think it deserves some more prominence, or even integration into cabal itself, to make everyone aware of the fact that there's such a thing as automatic installation and tempt people to make it work.
I completely agree, cabal-install is very nice, and should be more widely known.
Fear not, we are working towards a release :-) In fact in just the last couple days I've committed a new dependency resolver which should solve the dreaded diamond dependency problem: http://blog.well-typed.com/2008/04/the-dreaded-diamond-dependency-problem/ It can, for example, construct valid install plans for yi. There are a few more bits to clean up before I enable it by default and ask for wider testing. Duncan

Am Donnerstag, 29. Mai 2008 17:38 schrieb Achim Schneider:
[…]
Rationale: We need […] grapefruit authors that commit to hackage
Our reason to not commtting Grapefruit to Hackage so far was that this would mean making an official release and we thought that Grapefruit is not yet ready for this. However, I might be wrong in the sense that also despite its current deficiencies, Grapefruit should be available from Hackage. What do you think? By the way, it’s nice to hear that there are people which are really interested in trying Grapefruit out. It still makes me wonder at times that I’ve made something that other people find really useful. (Of course, I’ve not done Grapefruit alone but Matthias Reisner has also done a notable amount of work.) So I would really like to get feedback concerning peoples impressions about Grapefruit. Seeing interest in Grapefruit might give me more motivation for the work on it and therefore speed up its development.
[…]
Anyway, three hours after wanting to try it out, grapefruit is up and running, and I did not even have to install its dependencies by hand. It seems like grapefruit could benefit from nestable cabal packages, though: It has one big script that installs many packages. You could also call them dependencies.
You could create a basically empty package named “grapefruit” which just depends on all Grapefruit packages. Debian uses this concept for its packages.
[…]
Best wishes, Wolfgang

Hi
Our reason to not commtting Grapefruit to Hackage so far was that this would mean making an official release and we thought that Grapefruit is not yet ready for this. However, I might be wrong in the sense that also despite its current deficiencies, Grapefruit should be available from Hackage. What do you think?
Release it on hackage. Releasing to hacking means other people might find it useful - not that it is ready for production use. I think other people on this thread have already said they want it, so a hackage release is the way to go. I sometimes release to hackage with no accouncement, just to make it easier for users to use certain packages. For example, I doubt anyone has heard of the homeomorphic package, but I have released it to hackage. Thanks Neil

Hello Neil, Friday, May 30, 2008, 8:41:43 PM, you wrote:
Our reason to not commtting Grapefruit to Hackage so far was that this would mean making an official release and we thought that Grapefruit is not yet ready for this.
Release it on hackage. Releasing to hacking means other people might find it useful - not that it is ready for production use.
once i've gathered stats about projects released on RubyForge. "0.2" was the most popular version number there :)) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

Wolfgang Jeltsch
Am Donnerstag, 29. Mai 2008 17:38 schrieb Achim Schneider:
[…]
Rationale: We need […] grapefruit authors that commit to hackage
Our reason to not commtting Grapefruit to Hackage so far was that this would mean making an official release and we thought that Grapefruit is not yet ready for this. However, I might be wrong in the sense that also despite its current deficiencies, Grapefruit should be available from Hackage. What do you think?
Release early, release often. http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html
By the way, it’s nice to hear that there are people which are really interested in trying Grapefruit out. It still makes me wonder at times that I’ve made something that other people find really useful. (Of course, I’ve not done Grapefruit alone but Matthias Reisner has also done a notable amount of work.) So I would really like to get feedback concerning peoples impressions about Grapefruit. Seeing interest in Grapefruit might give me more motivation for the work on it and therefore speed up its development.
I'm generally very interested in declarative GUI programming, but not nearly enough acquainted with the whole topic to judge one project's approach over the other. I just followed standard scientific evaluation technique to select the projects to consider: The ones with the most and most recent activity win. So far, my impression is that documentation is severely lacking, but then I'm too busy watching Babylon 5 right now and did not get more than half an hour or so looking at grapefruit. -- (c) this sig last receiving data processing entity. Inspect headers for past copyright information. All rights reserved. Unauthorised copying, hiring, renting, public performance and/or broadcasting of this signature prohibited.

Am Freitag, 30. Mai 2008 22:09 schrieb Achim Schneider:
[…]
I'm generally very interested in declarative GUI programming, but not nearly enough acquainted with the whole topic to judge one project's approach over the other. I just followed standard scientific evaluation technique to select the projects to consider: The ones with the most and most recent activity win.
So far, my impression is that documentation is severely lacking, but then I'm too busy watching Babylon 5 right now and did not get more than half an hour or so looking at grapefruit.
Okay, I think we’ll improve API documentation and then make a release, despite Grapefruit not being production quality yet. I hope, you’ll find it useful. :-) Best wishes, Wolfgang
participants (13)
-
Achim Schneider
-
Bulat Ziganshin
-
Chaddaï Fouché
-
Darrin Thompson
-
Don Stewart
-
Donnie Jones
-
Duncan Coutts
-
Neil Mitchell
-
Rob Hoelz
-
Sterling Clover
-
Thomas Hartman
-
Thomas Schilling
-
Wolfgang Jeltsch