MSYS2 package for GHC 7.10.1

David Macek david.macek.0 at gmail.com
Thu May 21 20:52:56 UTC 2015


With the helpful pointers from ezyang on IRC, I pushed this a bit forward.

I converted most of the patches into more reasonable commits including short descriptions and created a git branch for it. See <https://github.com/ghc/ghc/compare/ghc-7.10.1-release...elieux:msys2-pkgbuild>.

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.

For hacking on GHC
==================

1. Get MSYS2, update and install dependencies (including the bootstrapping ghc that would come as a MSYS2 package)
2. Get a GHC repository ready
3. Hack, hack, hack
4. Build and test as usual
5. GOTO 3

Alternatively, this could be replaced with a makepkg-based flow:

1. Get MSYS2, update and install dependencies (including the bootstrapping ghc that would come as a MSYS2 package)
2. Get a mingw-w64-ghc-git PKGBUILD
3. $ makepkg-mingw --nobuild # clone the repositories
4. Go to src/ghc and hack, hack, hack
5. $ makepkg-mingw --noextract --noprepare --noarchive # build and test
6. GOTO 4

For binary release
==================

Phase 1: pacman package. This can be done in coordination with the MSYS2 maintainers, or a separate GHC-owned pacman repository can be created.

1. Get MSYS2, update and install dependencies (including the bootstrapping ghc that would come as a MSYS2 package)
2. Update the mingw-w64-ghc PKGBUILD to point to the new source release
3. $ makepkg-mingw # build a package
4. Upload the package to a pacman repository

Phase 2: stand-alone bindist

1. Download the package and its dependencies
2. Extract them into a temporary directory
3. Create a tarball or an installer from that
4. Upload to GHC servers

This is essentially what the new Git for Windows does (and what some other projects that use MSYS2 as their build environment do).

-- 
David Macek

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4234 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20150521/5bd92006/attachment.bin>


More information about the ghc-devs mailing list