I just use the version of MSys that is included with Git [1]. This puts a "Git bash" icon on your desktop which you can then use to build the network library. 

[1] http://code.google.com/p/msysgit/

2012/2/7 Alberto G. Corona <agocorona@gmail.com>
Nothing bur a long history of failures. The problem is the
configuration and versioning of MinGW and MSys. This  is a nighmare.

2012/2/7 Holger Reinhardt <hreinhardt@gmail.com>:
> Oh you are using Cygwin. I'm using MSys so this is why I cannot reproduce
> your problem. Is there anything preventing you from using MSys?
>
>
> 2012/2/7 Alberto G. Corona <agocorona@gmail.com>
>>
>> The "problem" this time is in "Configure" :
>>
>> case "$host" in
>> *-mingw32)
>>        EXTRA_SRCS="cbits/initWinSock.c, cbits/winSockErr.c,
>> cbits/asyncAccept.c"
>>        EXTRA_LIBS=ws2_32
>>        CALLCONV=stdcall ;;
>> *-solaris2*)
>>        EXTRA_SRCS="cbits/ancilData.c"
>>        EXTRA_LIBS="nsl, socket"
>>        CALLCONV=ccall ;;
>> *)
>>        EXTRA_SRCS="cbits/ancilData.c"
>>        EXTRA_LIBS=
>>        CALLCONV=ccall ;;
>> esac
>>
>>
>>
>> Since IŽm cross-compiling with cygwin, the variable Host does not
>> contain š*-muingw32"  but "i686-pc-cygwin"
>>
>> changing the case , the library incorporates the lost C coded files.
>>
>> Now the library links fine win imported, but there is a runtime error:
>>
>> NetworkSocket.hsc:(948,3)-(1007,23): Non-exhaustive patterns in case
>>
>> maybe it is due to some other preprocessor directive mismatch
>>
>>
>> 2012/2/7 Holger Reinhardt <hreinhardt@gmail.com>:
>> > Did you also change the files in the /cbits/ folder? Because they also
>> > check
>> > for HAVE_WINSOCK_H.
>> >
>> >
>> > 2012/2/7 Alberto G. Corona <agocorona@gmail.com>
>> >>
>> >> The code is evolving and none of the versions match exactily with the
>> >> patch, but substituting HAVE_WINSOCK by HAVE WINSOCK2 in these files
>> >> solves the compilation problem at least in the network 2.3.0.10
>> >> version from hackage.
>> >>
>> >> However it produces the same undefined references when this library is
>> >> imported in my application. It seems that some object code is not
>> >> included in the final library.  I verified that at least some of these
>> >> undefined references correspond with  C code in the source, but
>> >> somehow this is not included in the object library....
>> >>
>> >> 2012/2/7 Johan Tibell <johan.tibell@gmail.com>:
>> >> > Note that there are two branches on github, master and stable. You
>> >> > want
>> >> > the
>> >> > latter.
>> >> >
>> >> > On Feb 7, 2012 8:23 AM, "Alberto G. Corona" <agocorona@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> This is quite different.
>> >> >> I donŽt know how but I was looking at some other older patch around
>> >> >> the same issue and I supposed that it was the one refered by Yohan
>> >> >> Tibell.
>> >> >>
>> >> >> IŽll try your patch.
>> >> >>
>> >> >> Thanks!.
>> >> >>
>> >> >> 2012/2/7 Holger Reinhardt <hreinhardt@gmail.com>:
>> >> >> > Hi,
>> >> >> >
>> >> >> > (I submitted the patch that Johan linked to)
>> >> >> > Network/Socket/Internal.hsc has the following code:
>> >> >> >
>> >> >> > #if defined(WITH_WINSOCK) || defined(cygwin32_HOST_OS)
>> >> >> > type CSaFamily = (#type unsigned short)
>> >> >> > #elif defined(darwin_HOST_OS)
>> >> >> > type CSaFamily = (#type u_char)
>> >> >> > #else
>> >> >> > type CSaFamily = (#type sa_family_t)
>> >> >> > #endif
>> >> >> >
>> >> >> > You have patched this part to always use 'unsigned short'. But the
>> >> >> > real
>> >> >> > issue is that WITH_WINSOCK is not defined, even though it should
>> >> >> > be. The
>> >> >> > reason for this lies in include/HsNet.h:
>> >> >> >
>> >> >> > #if defined(HAVE_WINSOCK_H) && !defined(cygwin32_HOST_OS)
>> >> >> > # define WITH_WINSOCK  1
>> >> >> > #endif
>> >> >> >
>> >> >> > The problem here is that it checks for HAVE_WINSOCK_H, but the
>> >> >> > configure
>> >> >> > script never defines this variable. Instead it
>> >> >> > defines HAVE_WINSOCK2_H.
>> >> >> > It
>> >> >> > seems that the network library used Winsock1 in the past and in
>> >> >> > the
>> >> >> > transition to Winsock2 someone forgot to change a few of the
>> >> >> > #ifdefs.
>> >> >> >
>> >> >> > My patch just changes all occurences of HAVE_WINSOCK_H
>> >> >> > to HAVE_WINSOCK2_H.
>> >> >> > You might want to try that and report back if it works for you.
>> >> >> >
>> >> >> > 2012/2/7 Alberto G. Corona <agocorona@gmail.com>
>> >> >> >>
>> >> >> >> Hi Johan,
>> >> >> >> The patch is not for the current version of network and the code
>> >> >> >> is
>> >> >> >> quite different. Basically it is necesary to  define this
>> >> >> >> variable
>> >> >> >> as
>> >> >> >> "unsigned short" that is the thing intended in the patch. however
>> >> >> >> I
>> >> >> >> put it by brute force, without regard of the prerpocessor
>> >> >> >> directives.
>> >> >> >> With this change the code compiles well with:
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> http://neilmitchell.blogspot.com/2010/12/installing-haskell-network-library-on.html
>> >> >> >>
>> >> >> >> However my compiled library lack the methods defined as foreign.
>> >> >> >> IŽll
>> >> >> >> keep trying.
>> >> >> >>
>> >> >> >> 2012/2/6 Johan Tibell <johan.tibell@gmail.com>:
>> >> >> >> > Hi,
>> >> >> >> >
>> >> >> >> > Someone recently contributed a fix that should make network
>> >> >> >> > build
>> >> >> >> > with
>> >> >> >> > 7.4: https://github.com/haskell/network/pull/25
>> >> >> >> >
>> >> >> >> > Can you see if that works for you? I haven't yet had time to
>> >> >> >> > merge
>> >> >> >> > and
>> >> >> >> > release that fix (I'm on vacation.)
>> >> >> >> >
>> >> >> >> > -- Johan
>> >> >> >> >
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> Haskell-Cafe mailing list
>> >> >> >> Haskell-Cafe@haskell.org
>> >> >> >> http://www.haskell.org/mailman/listinfo/haskell-cafe
>> >> >> >
>> >> >> >
>> >
>> >
>
>