From: Duncan C. <dun...@wo...> - 2005-05-16 21:34:28
|
On Mon, 2005-05-16 at 07:34 -0700, Sigbjorn Finne wrote: > Hi Duncan, > > sorry about the delay. I use a tool I wrote here at Galois > for packaging up MSIs in an automatable manner, as the > tools out there at the time (couple of years ago) just didn't > fit our needs, i.e., wanted a tool that let you straightforwardly > specify the contents/shape of an installer, so that you could > include building an MSI as part of a nightly build setup. Yes a lot of these tools are rather complex and look hard to integrate into a build system. We've rather been dreading the whole Windows installer thing :-). > Happy with the tool, so haven't looked too closely at others > that have appeared since then (WiX et al.), so couldn't > recommend any one in particular. I know Daan Leijen has > looked around for installers to use for wxhaskell, so you may > want to ask him for pointers. We're also looking at "Inno Setup" http://www.jrsoftware.org/isinfo.php which looks quite good (although it does not use MSI). It's used by MinGW/MSYS. > It's time to release the Galois tool more widely though (it's > implemented in Haskell, btw) Maybe Cabal can use it to create packages for Windows. :-) > but that won't happen soon enough to be of potential help with your > next release, I'm afraid. No problem. Thanks for the info. BTW, it would be useful if you could document how to detect the presence of an appropriate version of ghc on windows that installers / batch scripts might be able to use. This info would be useful to gtk2hs, wxhaskell and probably cabal packages for windows too. The current algorithm I'm using in my experimental gtk2hs installer goes like this: 1. Check if ghc.exe exists on the path, try to run it, check that ghc.exe --numeric-version gives the value I expect and save the value of ghc.exe --print-libdir. 2. If 1. fails, look up the value of HKEY_CURRENT_USER\Software \Haskell\GHC\ghc-x.y.z\InstallDir and just to confirm, check that ${InstallDir}\bin\ghc.exe --numeric-version gives the expected result (ie confirm that the user hasn't moved the directory since installing from the .msi or done something else odd) 3. If 2. fails, look up the value of HKEY_LOCAL_MACHINE\SOFTWARE \Haskell\GHC\ghc-x.y.z\InstallDir and just to confirm, check that ${InstallDir}\bin\ghc.exe --numeric-version gives the expected result Does this sound reasonable? I'm hoping that covers the possibilities of: ghc built manually from source (and stuck on the path) or ghc installed by one of your .msi installers - either system wide or per-user. It should also work if there are multiple versions of ghc installed. Duncan |