<p dir="ltr">Wow, this sounds great!</p>
<p dir="ltr">Just to clarify - this would still be a mingw-w64 build<br>
and not require the msys2 DLLs, correct?</p>
<p dir="ltr">Thanks,<br>
Yitz</p>
<div class="gmail_quote">On May 21, 2015 23:53, "David Macek" <<a href="mailto:david.macek.0@gmail.com">david.macek.0@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">With the helpful pointers from ezyang on IRC, I pushed this a bit forward.<br>
<br>
I converted most of the patches into more reasonable commits including short descriptions and created a git branch for it. See <<a href="https://github.com/ghc/ghc/compare/ghc-7.10.1-release...elieux:msys2-pkgbuild" target="_blank">https://github.com/ghc/ghc/compare/ghc-7.10.1-release...elieux:msys2-pkgbuild</a>>.<br>
<br>
As mentioned previously, the changes should be uncontroversial except for two big changes: removing bundled mingw, perl and touchy and changing the directory layout. While the directory layout change is mostly self-contained (barring any tools hardcoding ..\lib), the bundled dependency removal will required major changes to the build process. My proposals follow.<br>
<br>
For hacking on GHC<br>
==================<br>
<br>
1. Get MSYS2, update and install dependencies (including the bootstrapping ghc that would come as a MSYS2 package)<br>
2. Get a GHC repository ready<br>
3. Hack, hack, hack<br>
4. Build and test as usual<br>
5. GOTO 3<br>
<br>
Alternatively, this could be replaced with a makepkg-based flow:<br>
<br>
1. Get MSYS2, update and install dependencies (including the bootstrapping ghc that would come as a MSYS2 package)<br>
2. Get a mingw-w64-ghc-git PKGBUILD<br>
3. $ makepkg-mingw --nobuild # clone the repositories<br>
4. Go to src/ghc and hack, hack, hack<br>
5. $ makepkg-mingw --noextract --noprepare --noarchive # build and test<br>
6. GOTO 4<br>
<br>
For binary release<br>
==================<br>
<br>
Phase 1: pacman package. This can be done in coordination with the MSYS2 maintainers, or a separate GHC-owned pacman repository can be created.<br>
<br>
1. Get MSYS2, update and install dependencies (including the bootstrapping ghc that would come as a MSYS2 package)<br>
2. Update the mingw-w64-ghc PKGBUILD to point to the new source release<br>
3. $ makepkg-mingw # build a package<br>
4. Upload the package to a pacman repository<br>
<br>
Phase 2: stand-alone bindist<br>
<br>
1. Download the package and its dependencies<br>
2. Extract them into a temporary directory<br>
3. Create a tarball or an installer from that<br>
4. Upload to GHC servers<br>
<br>
This is essentially what the new Git for Windows does (and what some other projects that use MSYS2 as their build environment do).<br>
<br>
--<br>
David Macek<br>
<br>
<br>_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div>