[haskell-platform] #6: Windows installer
haskell-platform
haskell-platform at projects.haskell.org
Thu Apr 23 06:33:15 EDT 2009
#6: Windows installer
----------------------+-----------------------------------------------------
Reporter: duncan | Owner: refold
Type: task | Status: reopened
Priority: major | Milestone: Release 1: 2009.0.0
Component: Platform | Resolution:
Keywords: |
----------------------+-----------------------------------------------------
Comment (by claus):
Nice to see that someone has taken on this task! Haven't tested, sorry
(narrowband limitations meaning that I build my own ghcs and only download
installers once the bugs have settled, in ghc-X.3 or so;-), but I'd like
to offer some comments:
- uninstall is absolutely essential for installers, and it needs to be
complete (uninstall every change it made) and precise (not uninstall
anything it can't recreate). I put this first, because installers seem
difficult to get right, so it is important to be able to undo whatever
they do, without making an even greater mess because the uninstall isn't
precise.
- windows installers for ghc and hugs have a long history of issues, some
of which are documented on the ghc trac. Browsing closed tickets for
things that have gone wrong in the past will give you a good idea of what
to avoid (such as incomplete `GLUT` provisions, changing filetypes, not
preserving existing filetype actions, etc), and there are still some open
tickets. Many tickets are about bad defaults, missing user options,
overwriting existing user preferences, not playing nice with other haskell
installers (hugs and ghc installers used to change each others filetype
settings, and similar fun).
-
[http://hackage.haskell.org/trac/ghc/query?status=new&status=assigned&status=reopened&status=closed&summary=%7Einstaller&summary=%7Eregistry&summary=%7Einstallation&os=Windows&os=Unknown%2FMultiple&order=priority]
-
[http://hackage.haskell.org/trac/ghc/search?ticket=on&wiki=on&q=installer&noquickjump=1&page=5]
- [http://haskell.org/haskellwiki/Installers]
- the issues tend to vary, but there have always been some issues in the
past, so I have preferred just to unpack the archives from the nightly
builds whenever possible. It would be good to have a "just unpack files
where I tell you to, don't change registry,PATH, or anything else" option
for the HP installer, for users who have been burned as often as some of
us have been, or just to keep the downloaded installer useable if there is
a minor issue with it.
- everything an installer does needs to be optional, as preferences and
configurations differ widely (the just-the-files-please option above is a
useful fallback if you don't want endless option dialogues)
- one issue is that installer authors tried to make "nicer, more
sensible" choices, which of course differed between authors, didn't match
user preferences, and worst of all, weren't constant, so couldn't be
relied on - please avoid that!-)
- installers don't live in isolation! Other Haskell programs want to use
the same files, with hopefully the same filetypes/associations linked to
the same endings. Users want to add other actions to those filetypes (I
regularly have at least one editor, several ghci versions, and one winhugs
version linked to that filetype, and my default action is edit, not one of
the interpreters!). It has been surprisingly common for installers to mess
up and void my existing settings (either they clear out the existing
actions, or they associate the ending with a different filetype
alltogether).
- using a path with spaces as the default would not be a good idea: I
have often cabal installed things like haddock, happy, .., only to find
that they end up in a location that the ghc build system can't handle, so
I have to edit the default, remove the install (`cabal uninstall`,
anyone?), and install again.
- my current layout usually has several ghc versions coexisting with
their own set of packages, but with a shared set of tools
{{{
c:/ghc/
ghc-<version1>/
..
ghc-<versionN>/
tools/
}}}
I would have liked all of cabal there as well, but by the time I ran
into the tools-in-paths-with-spaces issue, it had installed all kinds of
stuff in `c:/Program Files/Haskell`, and I never got round to cleaning
that up (`cabal uninstall`, anyone?)
- `ghc-paths` is the first package I install for each ghc build, but it
needs to be installed after ghc build/install to get the right paths.
- after a while, no matter how large it seems after purchase, the `c:`
drive is getting full, impeding normal system operation; so, many users
will want to be able to move cabal and its packages to another drive to
make space on `c:`, even if their preference would have been to keep the
packages with the compilers.
- how are you going to make sure that the HP installer's cabal packages
match existing cabal settings on the system? Or is there going to be a
separate cabal install for each HP, each with its own config files and
preferences?
Hope this helps, and thanks again for taking this on.
--
Ticket URL: <http://trac.haskell.org/haskell-platform/ticket/6#comment:12>
haskell-platform <http://trac.haskell.org/haskell-platform>
The Haskell Platform: a comprehensive and robust collection of Haskell libraries
More information about the Haskell-platform
mailing list