On Mon, Aug 4, 2014 at 11:52 PM, Krzysztof Skrzętnicki <gtener@gmail.com> wrote:
Hello.Please let me know if you think this is a reasonable approach.
I consider the original proposal to be well founded and I support it. However, I started to think if there is anything we can improve about installation of network package itself? Maybe we can get rid of MSYS, at least for the end users of network package?
How would that happen? The following plan came to my mind:
1. Select a single supported configuration (Windows version)
2. Execute a "normal" build with MSYS
3. Extract a configuration that was "discovered" by MSYS
4. Bake in the configuration into installation files to be used on Windows when MSYS is not present.
There shouldn't be that many supported configurations on Windows. I think it is reasonable to do:
1. Windows XP
2. Windows 7
3. Windows 8
4. some Windows Server versions?
For each system the variants would be:
1. 32-bit system, 32-bit GHC
2. 64-bit system, 32-bit GHC
3. 64-bit system, 64-bit GHC
Right now I have done the procedure above for my own 64-bit Windows 7/32-bit GHC pair. I also added some simple logic of choosing between "Simple" build and "Configure-type" build within Setup.hs. The result is a version of network package that can be built with or without MSYS on Windows and without change on other platforms. If you want to try it it is available from Github: https://github.com/tener/network .
I have also created a pull request against haskell/network you can check out: https://github.com/haskell/network/pull/141
--
KrzysztofVery enthusiastic +1 from me, if this can be done reliably. I have no experience with the network autoconf scripts, and little experience with the Windows socket API, so I can't assess how feasible it is.
Michael