Re: [Haskell-cafe] 1,000 packages, so let's build a few!

2009-02-07 Thread David Waern
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!

2009-02-01 Thread Duncan Coutts
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!

2009-02-01 Thread Duncan Coutts
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!

2009-02-01 Thread Duncan Coutts
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!

2009-02-01 Thread Sebastian Sylvan



--
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!

2009-01-31 Thread Don Stewart
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!

2009-01-31 Thread Peter Verswyvelen

 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!

2009-01-31 Thread Don Stewart
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!

2009-01-31 Thread 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). 


___
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!

2009-01-31 Thread Don Stewart
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