[Haskell-cafe] How to install HOpenGL to Windows?

Claus Reinke claus.reinke at talk21.com
Thu Apr 30 18:31:11 EDT 2009

> The thing is, it doesn't really matter if autoconf macros work fine for
> every Unix ever invented. The Windows users simply cannot use packages
> with configure scripts. They complain about it a lot. We can call them
> foolish for not installing cygwin/mingw, but they will not do it and
> instead will simply not use our software and/or continue to complain.

"Windows users" - that's a lot of different people to generalize over. 
>From what I've heard, most complaints are about assumptions made 
by non-windows users that turn out not to hold on windows,
causing things to fail on windows. Which seems reason enough for
failure reports, otherwise known as "complaints".

If someone wants to use a unix shell on an unknown platform, they 
should at least check that one exists there or -even better- provide 
one, not just assume that there'll always be one (and then be surprised 
about getting complaints from "those windows users"). Same for
autoconf, make & co.

If someone mixes up GCC's standard layout, they need to adjust
"everything" for those changes, and when that turns out to be rather
difficult, it is no surprise if GCC seems unable to pick the right 
include or library paths. This particular issue has just recently been 
fixed in GHC head, I understand (will that fix cause problems for
cabal, btw, when the existing path hacks are no longer needed?). 

Apart from causing lots of other path issues (and confusing tools
like cabal, which tried to compensate by special-case code), this 
complicated the process of installing headers and libraries used 
by FFI bindings, at least for those windows users who didn't build 
their own GHCs, with the help of a full GCC install.

And so on..

Listen to the complaints, there is (usually) a real issue behind them.

A couple more examples of why installing the tools that some 
cabal packages rely on isn't straightforward: 

I like and use cygwin, but when installing it, one has to be careful to 
include all the bits that are needed, preferably leaving out the bits that 
might cause confusion when used for GHC/Cabal (such as a second 
GCC installation). I once tried to capture the list of dependencies 
needed for building GHC in a cygwin pseudo-package (no contents, 
only dependencies), which made that easy. 


But then cygwin's installer added security signatures, and I don't
think such were ever added to the pseudo-package, the dependencies
are also not uptodate anymore (I don't have write access to where it 
was put). Nowadays, one could put the cygwin pseudo-package into 
a cabal package on hackage, including the necessary signature, and 
that cabal package could run the cygwin installer with the dependencies 
given in the cygwin package (assuming there's a commandline interface 
to the cygwin installer) or at least users could run the cygwin installers
with an updated version of that cygwin package, and get a cygwin 
setup useable for cabal packages.

Others like msys, but for some reason the msys developers hardly
ever put up a simple installer, one usually has to collect various
bits and pieces in the right version, then unpack them on top of
each other - very far from automated one-click installation. Simon
recently collected the pieces needed for building GHC, so one
could now point windows users to 


for "one-stop shopping". One could probably do better by 
collecting those pieces into a cabal package (assuming the
license is favourable), but I could never find documentation
for using the mingw/msys installers from the commandline,
as a cabal package would need to do. Someone familiar
with those installers might not find this difficult.

Improving Cabal to replace autoconf is a nice long-term goal,
but in the meantime, things could be made a lot easier for
those "windows users". GHC using the standard layout for
its GCC is one step, packaging up the msys and cygwin
dependencies would make it straightforward to install those
correctly (someone with installer knowledge might even
be able to automate that from the cabal commandline..).

Then windows users could easily install either msys or
cygwin, and the remaining issue would be how to install
the headers and libraries for cabal packages with ffi 
bindings. Just as on other platforms.


PS. Don't think of "them" and "they" vs "we" and "us" 
    and "our software". It doesn't help. Neither does
    classifying bug reports as "complaints".

-- It is not that we think of "other" as bad,
-- it is that we think of bad as "other".

More information about the Haskell-Cafe mailing list