Re: [Haskell-cafe] 1,000 packages, so let's build a few!
2009/1/31 Andrew Coppin andrewcop...@btinternet.com: In celebration of Hackage reachin over 1,000 unique packages, I decided that I would re-visit the problem of attempting to build them on Windows. I began by removing all existing Haskellness from my PC. I now have a vanilla Windows XP (32-bit) system with Service Pack 3. So, let's see what we can do here... - Install GHC 6.10.1. As you'd expect, no issues here. - Now, let's install stream-fusion. First let me ch... woah! What the hell? OK, it seems that Google is temporarily broken. (All websites show up as this site may damange your computer.) Obviously this has nothing to do with Haskell, but it makes navigating Hackage moderately more tedious. Oh well, anyway, where was I? Ah yes, I already have the tarball for stream-fusion-0.1.1, but I see that the latest release is 0.1.2.1. (Unfortunately, there doesn't appear to be any way to determine what the difference is between the two versions...) - Right, I've got the tarball for stream-fusion. Now let's see if it will install... J:\Haskell\unpack runhaskell Setup configure J:\Haskell\unpack runhaskell Setup build J:\Haskell\unpack runhaskell Setup install J:\Haskell\unpack ghc-pkg list ...stream-fusion-0.1.2.1... OK, nothing much wrong with that then. :-D - Hmm, doesn't GHC 6.10.1 now come with Haddock included? I wonder if there's a way to ask Cabal to build the docs for me... [Grr! Google is still busted.] Ah, yes there is. OK, let's try this: J:\Haskell\unpack runhaskell Setup haddock ... Data\Stream.hs:292:33: parse error on input `!' haddock: Failed to check module: Data.Stream Uh... OK. So I guess I *won't* build the docs for that one then. :-/ Oh well, maybe it's a one-off failure? Let's try some more packages... The problem there is that stream-fusion is trying to put documentation on individual data constructor arguments which is not supported by Haddock. David ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
On Sat, 2009-01-31 at 14:02 -0800, Don Stewart wrote: not really :) e.g. my output on a Windows Vista system with GHC 6.10.1 cabal install sdl Configuring SDL-0.5.4... setup.exe: sh: runGenProcess: does not exist (No such file or directory) Isn't this missing C library dependencies, which cabal head now warns about? No, it's about packages using configure scripts which require MSYS on Windows. In principle we should be able to notice this while doing the package dependency planning and report that we cannot install the package because it needs sh.exe. Duncan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
On Sat, 2009-01-31 at 16:50 -0800, Don Stewart wrote: Windows people need to set up a wind...@haskell.org to sort out their packaging issues, like we have for debian, arch, gentoo, freebsd and other distros. Unless people take action to get things working well on their platform, it will be slow going. Actually instead of going off into another mailing list I would encourage them to volunteer on the cabal-devel mailing list to help out. There is lots we could do to improve the experience on Windows and half the problem is we do not have enough people working on it or testing things. Duncan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
On Sun, 2009-02-01 at 16:50 +, Sebastian Sylvan wrote: Isn't this missing C library dependencies, which cabal head now warns about? No, it's about packages using configure scripts which require MSYS on Windows. In principle we should be able to notice this while doing the package dependency planning and report that we cannot install the package because it needs sh.exe. I wonder *why* packages need sh though? Isn't cabal supposed to allow you to do that kind of scripting in Haskell rather than calling into platform-dependent shell scripts? It does enable people to make portable packages, yes. It does not prevent people from using ./configure scripts, though as a community we do try to encourage people only to use them where it is essential. Are there any specific reasons why people feel the need to use sh? If you look at existing packages that use configure scripts you'll see some are pretty tricky, doing lots of checks in system header files for sizes of structures, values of constants and the presence of C functions in various header files. Some are trivial and should be done away with. For example the ones that just check if a C header / lib is present are unnecessary (and typically do not work correctly). The next point release of Cabal can do these checks automatically, eg: Configuring foo-1.0... cabal: Missing dependencies on foreign libraries: * Missing header file: foo.h * Missing C libraries: foo, bar, baz This problem can usually be solved by installing the system packages that provide these libraries (you may need the -dev versions). If the libraries are already installed but in a non-standard location then you can use the flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are. If the package is unix-only for other reasons (e.g. bindings to X or whatever) then it's obviously not a problem, but it appears to me that there's lots of packages that should be portable in principle that won't build on windows because it needs to run sh... We need to do a survey of the existing packages that use configure scripts and identify what they are doing exactly. What we want to do is work out what checks they are performing and which ones could be turned into portable checks in cabal or in Setup.hs scripts. We want to know, if we added feature X to Cabal, then Y packages could give up their configure scripts. This would be an excellent task for some volunteer to take on. http://hackage.haskell.org/trac/hackage/ticket/482 Duncan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
-- From: Duncan Coutts duncan.cou...@worc.ox.ac.uk Sent: Sunday, February 01, 2009 2:59 PM To: Don Stewart d...@galois.com Cc: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] 1,000 packages, so let's build a few! On Sat, 2009-01-31 at 14:02 -0800, Don Stewart wrote: not really :) e.g. my output on a Windows Vista system with GHC 6.10.1 cabal install sdl Configuring SDL-0.5.4... setup.exe: sh: runGenProcess: does not exist (No such file or directory) Isn't this missing C library dependencies, which cabal head now warns about? No, it's about packages using configure scripts which require MSYS on Windows. In principle we should be able to notice this while doing the package dependency planning and report that we cannot install the package because it needs sh.exe. I wonder *why* packages need sh though? Isn't cabal supposed to allow you to do that kind of scripting in Haskell rather than calling into platform-dependent shell scripts? Are there any specific reasons why people feel the need to use sh? If the package is unix-only for other reasons (e.g. bindings to X or whatever) then it's obviously not a problem, but it appears to me that there's lots of packages that should be portable in principle that won't build on windows because it needs to run sh... ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
andrewcoppin: In celebration of Hackage reachin over 1,000 unique packages, I decided that I would re-visit the problem of attempting to build them on Windows. Ah yes, I already have the tarball for stream-fusion-0.1.1, but I see that the latest release is 0.1.2.1. (Unfortunately, there doesn't appear to be any way to determine what the difference is between the two versions...) the true way to install all of hackage is: cabal install $(all my packages) where cabal install solves it all. -- Don ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
the true way to install all of hackage is: cabal install $(all my packages) where cabal install solves it all. not really :) e.g. my output on a Windows Vista system with GHC 6.10.1 cabal install sdl Resolving dependencies... Downloading SDL-0.5.4... [1 of 1] Compiling Main ( C:\Users\Peter\AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\Setup.lhs, C:\Users\Peter \AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\dist\setup\Main.o ) C:\Users\Peter\AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\Setup.lhs:2:2: Warning: In the use of `defaultUserHooks' (imported from Distribution.Simple): Deprecated: Use simpleUserHooks or autoconfUserHooks, unless you need Cabal-1.2 compatibility in which case you must stick with defaultUserHooks Linking C:\Users\Peter\AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\dist\setup\setup.exe ... Warning: defaultUserHooks in Setup script is deprecated. Configuring SDL-0.5.4... setup.exe: sh: runGenProcess: does not exist (No such file or directory) cabal: Error: some packages failed to install: SDL-0.5.4 failed during the configure step. The exception was: exit: ExitFailure 1 To build this I guess I would have to install MinGW and MSYS (which is already insanely hard to unzip all the latest development stuff in the right places and configure it correctly, especially for a windows user), and then do all kinds of tricky things that are obvious for unix people but alien for dummy windows users like me :) Anyway, support for Windows users gets better each year, which is great! ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
bugfact: the true way to install all of hackage is: cabal install $(all my packages) where cabal install solves it all. not really :) e.g. my output on a Windows Vista system with GHC 6.10.1 cabal install sdl Resolving dependencies... Downloading SDL-0.5.4... [1 of 1] Compiling Main ( C:\Users\Peter\AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\Setup.lhs, C:\Users\Peter \AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\dist\setup\Main.o ) C:\Users\Peter\AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\Setup.lhs:2:2: Warning: In the use of `defaultUserHooks' (imported from Distribution.Simple): Deprecated: Use simpleUserHooks or autoconfUserHooks, unless you need Cabal-1.2 compatibility in which case you must stick with defaultUserHooks Linking C:\Users\Peter\AppData\Local\Temp\TMPSDL-0.5.4\SDL-0.5.4\dist\setup\setup.exe ... Warning: defaultUserHooks in Setup script is deprecated. Configuring SDL-0.5.4... setup.exe: sh: runGenProcess: does not exist (No such file or directory) cabal: Error: some packages failed to install: SDL-0.5.4 failed during the configure step. The exception was: exit: ExitFailure 1 Isn't this missing C library dependencies, which cabal head now warns about? -- Don ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
-- From: Don Stewart d...@galois.com Sent: Saturday, January 31, 2009 8:35 PM To: Andrew Coppin andrewcop...@btinternet.com Cc: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] 1,000 packages, so let's build a few! andrewcoppin: In celebration of Hackage reachin over 1,000 unique packages, I decided that I would re-visit the problem of attempting to build them on Windows. Ah yes, I already have the tarball for stream-fusion-0.1.1, but I see that the latest release is 0.1.2.1. (Unfortunately, there doesn't appear to be any way to determine what the difference is between the two versions...) the true way to install all of hackage is: cabal install $(all my packages) where cabal install solves it all. If that had actually worked it would be great I must say that my own not-so-random sampling (basically ooh that looks cool, let's try it) is probably at a 20% success rate or so... It's great when it does work, but it usually doesn't. Usually it fails because some part of it tries to run unix shell scripts (and I try to avoid things which seem like they're unix only, even though they're no easy way of determining this, so these are packages that at least to me seemed like they could be perfectly portable if not for unix-specific installation procedures). ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 1,000 packages, so let's build a few!
sebastian.sylvan: -- From: Don Stewart d...@galois.com Sent: Saturday, January 31, 2009 8:35 PM To: Andrew Coppin andrewcop...@btinternet.com Cc: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] 1,000 packages, so let's build a few! andrewcoppin: In celebration of Hackage reachin over 1,000 unique packages, I decided that I would re-visit the problem of attempting to build them on Windows. Ah yes, I already have the tarball for stream-fusion-0.1.1, but I see that the latest release is 0.1.2.1. (Unfortunately, there doesn't appear to be any way to determine what the difference is between the two versions...) the true way to install all of hackage is: cabal install $(all my packages) where cabal install solves it all. If that had actually worked it would be great I must say that my own not-so-random sampling (basically ooh that looks cool, let's try it) is probably at a 20% success rate or so... It's great when it does work, but it usually doesn't. Usually it fails because some part of it tries to run unix shell scripts (and I try to avoid things which seem like they're unix only, even though they're no easy way of determining this, so these are packages that at least to me seemed like they could be perfectly portable if not for unix-specific installation procedures). Windows people need to set up a wind...@haskell.org to sort out their packaging issues, like we have for debian, arch, gentoo, freebsd and other distros. Unless people take action to get things working well on their platform, it will be slow going. -- Don ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe